k8s相关问题及答案
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,集群搭建完成
更多推荐

所有评论(0)