1.ca-certificates,gnupg,lsb-release三个包是干啥的?

ca-certficates:系统根证书包,装各合法网站,软件的可信证书,拉镜像,访问集群api不报错,能校验https。

gnupg:GPG加密工具,软件源公钥校验用,装k8s,docker源的时候验证安装包没被篡改。

lsb-release:读取系统发行版信息(Ubuntu/centos版本),写yum/apt源的时候自动匹配系统版本。

2.docker-ce,docker-ce-cli,containerd.io,docker-compose-plugin作用

docker-ce:Docker引擎主程序,老式容器运行时。

docker-ce-cli:docker命令行工具,敲docker run/ps那些指令全靠它

containerd.io:现在k8s官方推荐容器运行时,负责拉镜像,启停容器,容器镜像存储,docker底层也是套它

docker-compose-plugin:本地多容器编排插件,一条命令启动一套关联容器(本地开发用)

3.k8s 1.2之后不再支持docker,对错?

错。准确说:1.24版本其起kubelet移除dockershim内置支持,不是完全不能用docker。

如果非要继续用docker,得额外装cri-dockerd中间件转接,原生只认containerd/cri-o这种标准cri运行时。

4.创建容器,交互式进容器命令(docker)

docker run -it --name test nginx /bin/bash

-i: 保持标准输入打开,能打字

-t:分配虚拟终端

/bin/bash:启动shell交互窗口

退出敲exit,容器会停;想后台跑再进:

docker run -d nginx

docker exec -it 容器名/id /bin/bash

5.装k8s必须关swap分区为啥

swap是硬盘虚拟内存,速度极慢。

k8s调度是按物理内存算资源配额。一旦开swap,容器内存挤占硬盘,会出现:程序卡顿,oom杀进程,节点负载不准,调度器判断资源错乱,集群稳定性直接崩。永久关闭swapoff -a,还要注释/etc/fstab里swap行永久生效。

6.br_netfilter是什么

内核网络模块,开启后网桥设备能转发iptables流量。

k8s Pod跨节点通信,service转发,calico网络插件都依赖它,不会出现pod内网互相访问不通,装集群必须加载这个模块。

7.kubeadm,kubectl,kubelet三者区别

kubeadm,kubectl,kubelet三者区别

kubeadm:集群安装工具,一条命令初始化master,加工作节点,简化部署,只负责搭集群

kubectl:集群客户端命令行,所有人操作集群全靠它,查pod,建服务,删资源

kubelet:每个节点后台代理服务,跟apiserver通信,管本机pod,镜像,卷,探针,干活的苦力。

8.k8s集群完整创建流程(kubeadm方式)

所有节点基础环境配置:关swap,加载br_netfilter,放行内核ip转发,安装容器运行时containerd;

所有节点安装kubeadm/kubelet/kybectl,锁定版本避免自动更新

主节点执行kubeadm init,生成控制平面(etcd,apiserver,控制器,调度器),输出join命令和管理员kubeconfig

复制管理员配置文件到用户家目录,不然kubectl没权限操作集群

安装网络插件calico/flannel,不然pod之间不通网

所有工作节点执行kubeadm join,携带主节点token和哈希值加入集群

主节点打污点,调度普通业务pod到工作节点,检查所有节点ready,集群搭建完成

更多推荐