当前位置: 首页 > article >正文

K8s证书--运维之最佳选择(K8s Certificate - the best Choice for Operation and Maintenance)

K8s证书--运维之最佳选择

No

-Number-

01

一个月速通CKA

为了速通CKA,主要办了两件事情

1. 在官方的Killercoda上,练习CKA的题目。把命令敲熟悉。 // 

https://killercoda.com/killer-shell-ckad

2. 使用K3s在多台虚拟机上快速搭建了K8s集群,然后在CSDN上找了别人分享的真题来练习。

别人两天速通CKA的教程

https://segmentfault.com/a/1190000044723122

考试有两次机会,挺严格的,需要开摄像头,拿着摄像头将整个房间扫描一遍。还需要开着全局的VPN才能流畅考试。

考试过程中无法切屏,人不能离开摄像头范围,也不能发出声音,嘴巴也不能做口型。

CKA 60分就算过,不过会有分数,过了就不会有分数,只有证书。

图片

K8s的使用就是一些kubectl,大部分也就是一些yaml文件的配置。但是很多options会经常忘记,一些yaml的key-value格式也经常忘。

总之就是熟能生巧,使用K3s可以搭建集群来复习。或者直接使用Killercoda来复习。

图片

No

-Number-

02

拿着CKA没找到工作

CKA全称是Certified Kubernetes Administrator。对应的中文就是K8s管理员。

在花了一个月考取了CKA证书之后,想凭着这个证书在Boss上收获更多的面试,甚至能找到一个K8s相关的offer。

然而联系了两百个K8s相关的岗位后,投递出去约100家后,只有不到7个的K8s相关面试。当然最后,也全挂了。

K8s的岗位,要么是大厂的K8s开发(golang开发),要么是大厂和小厂的K8s运维。

这两者都不是说,你有了CKA之后,就有面试机会。而是相关经验很匹配,然后又有CKA这个加分项,面试机会才会更大。

图片

很多网站也在鼓吹CKA有多重要,多重要。甚至开始卖课了,零基础拿下CKA认证。但属实是有点贩卖焦虑了。

图片

它直接给我贴大厂K8s相关岗位的薪资,用红圈圈出,CKA优先等字体。

要不要考CKA还是要认清楚三个现状

1. 要做K8s相关的开发,需要了解Kubernetes的很多原理,并且这些原理考完CKA,在遇到面试官提问K8s问题时,你也不一定会回答出来,因为在考CKA时不需要关注这些。

2. 要做K8s相关的开发,基本只有大厂才有,要求很高。不管是K8s相关的要求,还是golang相关的要求,都不低。几百个人的公司,对此要求也不低。

3. 要做K8s相关的运维,基本只有大厂和一些非IT类的企业需要运维K8s集群才有岗位。通常这些岗位会要求有各种各样的运维经验。数据库、Linux、各种中间件。并且运维招聘的人就很少。

总的来说,如果没有相关的经验,再去应聘。只拿着CKA证书,基本没有面试。

No

-Number-

03

Operator了解吗

在考完了CKA,想拿着这个证书去市场叱咤风云,但是各种没有听过的K8s八股文直接把我问懵了

问题:kubectl创建一个pod,kubectl背后发生的通信链路是?

回答:kubectl和kube-apiserver通信,api-server负责解析yaml文件

1. kube-apiserver --- kubectl直接与apiserver交互。间接和其它组件交互

2. etcd --- 由kube-apiserver直接与etcd交互

3. kubelet --- 这是宿主机的进程,负责与容器运行时交互

4. kube-controller-manager --- 重点关注,因为没有在图片上体现出来 和kube-apiserver交互,主动watch controller,确保controller的状态和预期一致 //controller通过监听kube-apiserver的事件,delete事件、watch事件、add事件等等

5. kube-scheduler ---- 负责调度pod--- 只在master节点上有,不直接与kubelet交互 --- kube-apiserver发送new pod事件通知kube-scheduler,然后将调度策略通知给kube-apiserver

总结就是kubectl、etcd、kube-controller-manager、kube-scheduler、kubelet进程都是直接和kube-apiserver直接通信,然后这些组件之间通过kube-apiserver间接通信。

还有一个kube-proxy进程运行在每个节点上的进程。负责集群内部,节点之间的流量转发。也就是三层IP层。kube-proxy、ingress、network-policy比较容易混淆

组件

组件

kube-proxy进程

运行在每个节点上的进程。负责集群内部,节点之间的流量转发。也就是三层IP层

ingress-controller(pod来的)

用于http/https层,也就是7层。用于集群外部的流量,进入内部时,哪一些路由,应该访问哪些pod

network-policy(具体由CNI控制,CNI以Daemonset部署)

主要是针对ip去做分流,实现pod、service之间的访问控制

问题:K8s的Operator了解吗?

回答:operator指的是一种模式。允许用户自定义自己的crd,deployment等等。以及可以自定义控制pod的运行

operator主要有3个组件

1. CR custom resource // 自定义资源

2. Controller---Observe the current state, compare it to the desired state and adjust the state // Controller is just some logic // 这个controller也是以pod的形式来运行。但是会监视CR的状态

3. State --- The state just holds the information of what the desired state of the resource is and the resource is the thing that you are managing. // 具体的表现形式就是yaml

官网是直接给了一个demo。参考:https://kubernetes.io/zh-cn/docs/concepts/extend-kubernetes/operator/

1.有一个名为 SampleDB 的自定义资源,你可以将其配置到集群中。

2.一个包含 Operator 控制器部分的 Deployment,用来确保 Pod 处于运行状态。// 控制器Controller本身也是一种Pod

3.Operator 代码的容器镜像。

4.控制器代码,负责查询控制平面以找出已配置的 SampleDB 资源。

5.Operator 的核心是告诉 API 服务器,如何使现实与代码里配置的资源匹配。

- 如果添加新的 SampleDB,Operator 将设置 PersistentVolumeClaims 以提供持久化的数据库存储, 设置 StatefulSet 以运行 SampleDB,并设置 Job 来处理初始配置。

- 如果你删除它,Operator 将建立快照,然后确保 StatefulSet 和 Volume 已被删除。

6.Operator 也可以管理常规数据库的备份。对于每个 SampleDB 资源,Operator 会确定何时创建(可以连接到数据库并进行备份的)Pod。这些 Pod 将依赖于 ConfigMap 和/或具有数据库连接详细信息和凭据的 Secret。

7.由于 Operator 旨在为其管理的资源提供强大的自动化功能,因此它还需要一些额外的支持性代码。 在这个示例中,代码将检查数据库是否正运行在旧版本上, 如果是,则创建 Job 对象为你升级数据库。

问题Deployment 、StatefulSet、DaemonSet、ReplicaSet 都有啥区别?

回答:如下

组件

作用

replicaset

管理pod副本的,部署无状态应用---k8s官方也不建议直接操作replicaset。应该使用deployment,deployment功能更多

deployment

管理Pod和ReplicaSet,部署无状态应用,滚动升级等功能

statefulset

部署有状态应用---比如mysql主从集群

Daemonset

保每个node都运行某个pod。一般这种pod里面放的是一些守护进程。

No

-Number-

04

总结

考了CKA也不能直接就有offer,K8s的八股文还是不能少,做K8s开发的路更难。。。

相关文章:

K8s证书--运维之最佳选择(K8s Certificate - the best Choice for Operation and Maintenance)

K8s证书--运维之最佳选择 No -Number- 01 一个月速通CKA 为了速通CKA,主要办了两件事情 1. 在官方的Killercoda上,练习CKA的题目。把命令敲熟悉。 // https://killercoda.com/killer-shell-ckad 2. 使用K3s在多台虚拟机上快速搭建了K8s集群&…...

MySQL 8.0.41源码目录深度解析:探索数据库内核的架构蓝图

文章目录 MySQL 8.0.41源码目录深度解析:探索数据库内核的架构蓝图一、MySQL 8.0.41 目录结构总览1.1 安装目录核心子目录1.2 数据目录关键组件 二、核心源码模块剖析2.1 SQL 引擎核心(sql / 目录)2.1.1 核心组件2.1.2 架构亮点 2.2 存储引擎…...

Leaflet.js+leaflet.heat实现热力图

Leaflet热力图 #mermaid-svg-I1zXN0OrNCBGKEWy {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-I1zXN0OrNCBGKEWy .error-icon{fill:#552222;}#mermaid-svg-I1zXN0OrNCBGKEWy .error-text{fill:#552222;stroke:#5522…...

通过git文件查看大模型下载链接的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

多源最短路:Floyd算法の暴力美学

多源最短路求解的是图中的任意两个节点之间的最短路。 前文我们已经讲过单源最短路,我们完全可以做n次单源最短路算法,求出任意两节点的最短距离。最快的堆优化版的 dijkstra 算法的时间复杂度为o(m * logm),枚举n次时…...

初教六双机一飞冲天动作要领

初教六双机一飞冲天动作要领 初教六双机“一飞冲天”是典型的垂直爬升特技动作,要求双机以近乎垂直的姿态同步高速爬升,展现飞机的动力性能与编队协同能力。以下是该动作的详细技术解析与执行要点: 一、动作定义与特点 基本形态 双机以相同速…...

qtcore在docker容器中运行

FROM ubuntu # 设置时区环境变量 ENV TZAsia/Shanghai RUN echo "${TZ}" > /etc/timezone \ && ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime \ && apt update \ && apt install -y tzdata \ && rm -rf /var/lib/apt…...

simpleITK - Setup - Pythonic Syntactic Sugar

Pythonic Syntactic Sugar Image Basics Notebook 非常简单,与 ITK 的 C 接口非常接近。 Sugar非常棒,它能让你精力充沛,更快地完成任务!SimpleITK 也应用了大量Sugar来帮助更快地完成任务。 %matplotlib inline import matplo…...

【leetcode hot 100 215】数组中的第K个最大元素

解法一&#xff1a;维护最大最小值 -> 堆 -> k个元素的最小值堆 class Solution {public int findKthLargest(int[] nums, int k) {// 维护最大最小值 -> 堆 -> k个元素的最小值堆PriorityQueue<Integer> heap new PriorityQueue<>((n1, n2) -> n…...

下载vmware17

我用VMware10安装ubuntu24&#xff0c;死活不能成功&#xff0c;要么突然退出&#xff0c;要么装着装着&#xff0c;眼看完成&#xff0c;居然卡住不动&#xff0c;一查日志&#xff0c;提示光盘读取失败&#xff08;用的ISO文件&#xff0c;居然装模作样的说光驱读取失败&…...

德昂观点:如何看待MicroStrategy改名为Strategy?

2025年2月&#xff0c;纳斯达克上市公司MicroStrategy&#xff08;股票代码&#xff1a;MSTR&#xff09;宣布更名为“Strategy”&#xff0c;并同步启用全新品牌标识与橙色主视觉。这不仅是品牌形象的更新&#xff0c;更是公司战略方向的明确宣示。德昂作为MSTR中国区BI合作伙…...

嵌入式八股RTOS与Linux---网络系统篇

前言 关于计网的什么TCP三次握手 几层模型啊TCP报文啥的不在这里讲,会单独分成一个计算机网络模块   这里主要介绍介绍lwip和socket FreeRTOS下的网络接口–移植LWIP 实际上FreeRTOS并不自带网络接口,我们一般会通过移植lwip协议栈让FreeRTOS可以通过网络接口收发数据,具体可…...

Django 生成 ssl 安全证书,切换 https、wss协议(daphne 、nginx)

Django 普通 http 协议不够安全&#xff0c;无法支持连接本地摄像头&#xff08;虽然在本地 localhost 上能连&#xff09;&#xff0c;此时需要切换成 https 协议&#xff08;先提个醒&#xff0c;我这个方法最后失败了&#xff0c;不过对您应该也有帮助&#xff09; 目录 配置…...

告别Win10强制更新:永久关闭系统更新指南

你是否厌倦了Win10在开关机时的强制自动更新&#xff1f;无论你是在赶时间还是专注于工作&#xff0c;那突如其来的更新提示总是让人不胜其烦。屏幕上那句“正在更新&#xff0c;请勿关闭电源”的提示&#xff0c;仿佛是对你无奈的嘲笑。别担心&#xff0c;今天我将教你如何永久…...

【django】2-1 (django配置) 应用配置、中间件配置、模板配置

文章目录 1 基本设置2 应用配置2.1 django核心应用2.2 常用第三方应用 3 中间件3.1 默认使用的中间件3.2 其它内置中间件3.3 第三方中间件3.4 中间件的执行顺序 4 模板引擎配置4.1 配置字典的键4.2 上下文处理器 创建django项目后&#xff0c;会自动生成初始的项目文件如下&…...

nginx-rtmp-module之ngx_rtmp.c代码详解

1. ngx_rtmp.c — RTMP模块的主逻辑实现 这个文件是 RTMP 模块的核心&#xff0c;包含了 RTMP 协议模块的初始化、配置解析和服务端口的管理等功能。它的主要职责是处理 RTMP 配置、初始化模块、配置事件、初始化 RTMP 端口等。 主要功能和逻辑&#xff1a; 模块初始化 (ngx_…...

罗杰斯特回归

定义 逻辑回归其实就是原来的线性回归加了激活函数&#xff0c;这个函数其实就是sigmoid函数&#xff0c;把一个回归的连续数值压缩到了0到1的空间&#xff0c;其实只要有函数能够满足把数值压缩到0,1之间就可以&#xff08;因为0到1之间的数值就是概率值&#xff09; 对于分类…...

Android 10.0 SystemUI状态栏去掉刘海屏功能实现

1.前言 在android10.0的系统rom定制化开发中,在一些产品中,对于带有刘海屏的产品中,会因为 刘海屏导致状态栏能显示图片的位置很小,然后会出现状态栏图标显示为白点的功能, 接下来看下问题怎么解决 2.SystemUI状态栏去掉刘海屏功能实现的核心类 frameworks/base/core/r…...

三维空间中点、线、面的关系

三维空间中点、线、面的关系 点相对于平面的位置关系直线相对于平面的位置关系1.根据三点计算平面方程 //根据3点计算平面方程#include <iostream> #include <cmath> #include <vector>...

【嵌入式学习2】C语言 - VScode环境搭建

目录 ## 语言分类 ## c语言编译器 ## VScode相关配置 ## 语言分类 编译型语言&#xff1a;C&#xff0c;C解释型语言&#xff1a;python&#xff0c;JS ## c语言编译器 分类GCC 系列MinGWCygwinMSVC系列一套编程语言编译器将GCC编译器和GNU Binutils移植到Win32平台下的产物…...

TCP/IP的网络连接设备

TCP/IP层物理层网卡、集线器、中继器数据链路层网桥、交换机网络层路由器传输层网关应用层 1.网桥&#xff1a;网桥主要功能是将一个网络的数据沿通信线路复制到另一个网络中去&#xff0c;可以有效的连接两个局域网 2.网关&#xff1a;网关又称协议转换器&#xff0c;是将两…...

蓝桥杯真题 2109.统计子矩阵

原题地址:1.统计子矩阵 - 蓝桥云课 问题描述 给定一个 NMNM 的矩阵 AA, 请你统计有多少个子矩阵 (最小 1111, 最大 NM)NM) 满足子矩阵中所有数的和不超过给定的整数 KK ? 输入格式 第一行包含三个整数 N,MN,M 和 KK. 之后 NN 行每行包含 MM 个整数, 代表矩阵 AA. 输出格…...

利用脚本和Shader制作屏幕后处理效果

一、屏幕后处理的实现原理 该屏幕后处理的原理是将渲染完成后的屏幕纹理通过脚本和Shader完成一些操作&#xff0c;然后实现各种屏幕效果 而实现屏幕后处理效果的主要操作就是获得当下渲染完成后的屏幕图像&#xff0c;其中unity提供了一个函数用于获取此图像——OnRenderIma…...

【银河麒麟系统常识】命令:uname -m(查看系统架构)

命令&#xff1a; uname -m 功能 常用的 Linux/Unix 终端命令&#xff0c;用于显示当前系统的硬件架构&#xff1b; 返回 返回系统的CPU架构类型&#xff0c;用于判断软件兼容性&#xff1b; 输出结果架构说明常见设备x86_64Intel/AMD 64位 CPU主流 PC、服务器aarch64ARM 64位 …...

3.1.2 内存池

文章目录 3.1.2 内存池1. 什么是内存池2. 内存管理1. 定长2. 不定长3. jemalloc4. tcmalloc 3.1.2 内存池 1. 什么是内存池 内存池&#xff08;Memory Pool&#xff09; 是一种 预先分配 一块大内存&#xff0c;然后按需分配和回收 其中小块内存的技术。它的本质是管理一块连续…...

基于SpringBoot + Vue 的餐厅点餐管理系统

SpringBootVue餐厅点餐管理系统 技术框架 后端&#xff1a;springboot mybatisPlus前端&#xff1a;Vue2 elementUI数据库&#xff1a;mysql项目构建工具&#xff1a;maven 数据库表 14张 角色及功能 管理员&#xff1a;登录、用户管理、餐桌信息管理、菜品类型管理、菜…...

Android开发BasePagerAdapter

Android开发BasePagerAdapter 有个基类的PagerAdapter 方便很多 public class BasePagerAdapter extends FragmentPagerAdapter {private static final String TAG "FragmentPagerAdapter";private static final boolean DEBUG false;private final FragmentMana…...

70. Linux驱动开发与裸机开发区别,字符设备驱动开发

一、裸机驱动开发回顾 1、底层&#xff0c;跟寄存器打交道&#xff0c;有些MCU提供了库。 二、Linux驱动开发思维 1、Linux下驱动开发直接操作寄存器不现实。 2、根据Linux下的各种驱动框架进行开发。一定要满足框架&#xff0c;也就是Linux下各种驱动框架的掌握。 3、驱动最…...

【博客节选】再谈Unity 的 root motion

节选自 【Unity实战笔记】第二十三 root motion变更方向攻击 &#xff08;OnStateMove rootmotion rigidbody 使用的一些问题&#xff09; 小伙伴们应该对root motion非常困惑&#xff0c;包括那个bake into pose。 当xz bake into pose后&#xff0c;角色攻击动画与父节点产…...

26考研——栈、队列和数组_栈(3)

408答疑 文章目录 一、栈1、栈&#xff08;Stack&#xff09;的概念和特点定义术语操作特性示例直观理解栈的基本操作初始化栈判断栈是否为空入栈操作出栈操作读取栈顶元素销毁栈 栈的数学性质 2、栈的顺序存储结构顺序栈的定义栈顶指针初始化注意事项 共享栈共享栈的操作共享栈…...