目录
1.ca-certificates, gnupg, lsb-release三个包的解释。
2. docker-ce, docker-ce-cli, containerd.io, docker-compose-plugin作用。
3. K8s在1.2之后就不再支持docker,请解释对错。
7.解释kubeadm, kubectl, kubelet。
10. kube-apiserver, etcd, kube-controller-manager, kube-scheduler的作用。
1.ca-certificates, gnupg, lsb-release三个包的解释。
ca-certificates:存储受信任的 CA根证书,用于 HTTPS 安全连接。
gnupg:验证软件包的数字签名(确保下载的 Docker/K8s 安装包未被篡改)。
lsb-release:提供当前 Linux 系统的版本信息,方便脚本自动适配安装源。
2. docker-ce, docker-ce-cli, containerd.io, docker-compose-plugin作用。
1、Docker社区版的核心引擎,实现拉取镜像、创建容器、运行容器、停止容器
2、Docker命令行工具,让我们通过命令行操作容器
3、底层工具,容器运行时,调用它来启动、停止、管理容器,支持CRI。Docker也是容器运行时,但不支持CRI
4、让人可以使用docker compose命令,管理多容器应用。docker-compose是一个工具,让人可以用一个 YAML 文件定义多个容器(比如前端 + 后端 + 数据库),然后一键启动/停止它们。
3. K8s在1.2之后就不再支持docker,请解释对错。
错。可以使用cri-docker适配器。
4. 举例说明创建容器以及以交互方式访问容器的命令?
docker run -d -p 8000:80 --name container1 nginx
docker ps
docker exec -it container1 /bin/bash
5.部署安装K8s为什么要关闭swap分区?
如果内存满了,将一部分数据放到了硬盘,让scheduler误认为该节点资源空闲,放置更多的pod运行,导致部分pod性能极差,不利于负载均衡。而且k8s不在开启了swap分区的节点运行。
6.解释br_netfilter。
这是一个内核模块,加载这个模块是让 Linux 把网桥上的流量交给 iptables/netfilter 处理。然后net filter根据iptables转发和过滤这些流量到相应的接口。
7.解释kubeadm, kubectl, kubelet。
- 搭建集群:初始化master节点,让worker节点加入集群
- 命令行工具,管理集群中的资源
- 每个节点的代理,听kube-api-server的指挥,创建管理pod和容器
8.详细说明K8s集群的创建过程。
1、禁用交换分区
2、启用netfilter,iptables决定转发路径,并设置转发参数
3、配置镜像源,安装kubelet/kubeadm/kubectl并锁定
4、启动命令补全
5、配置
6、生成yaml文件,初始化master
7、配置用户的~/.kube/config以使用kubectl
8、部署colico网络插件
9、设置worker节点加入集群
10、打标签
9. Calico网络插件在K8s集群的作用。
Pod 的ip是虚拟的,节点不知道如何转发这些 IP 的数据包,不能使用物理网络。这些网络插件会在每个节点上配置相应的网络规则,当一个 Pod 想访问另一个 Pod 时,数据包会经过这些网桥、路由规则,最终被转发到目标 Pod,并且使用边界网关协议,可以跨节点,就像在一个局域网中。支持防火墙和加密。
10. kube-apiserver, etcd, kube-controller-manager, kube-scheduler的作用。
这些都是控制平面的组件。
- api服务器是控制平面的前端,将接口暴露给外部,与外界实现沟通。可以水平扩展。还可以接收kubelet发送的容器状态数据。
- 键值对形式存储集群数据
- 这是一个控制器管理器,能够运行控制器进程。实现scheduler分析出的策略
- 调度器,监视已创建但尚未分配的pod,哪个节点负载低,将其分配到哪个节点。
11. kubelet, kube-proxy作用。
1、每个节点的代理,听kube-api-server的指挥,创建管理pod和容器,并将状态报告给api server
2、网络代理,维护网络规则,实现与集群内外的pod通信,数据包过滤和转发。
12. 什么是K8s的namespace?
将物理集群资源逻辑隔离成的虚拟集群。
因为一个集群中有很多应用,首先可能会发生命名冲突,其次,如果一个应用用了很多资源,其他应用跑不起来,资源没办法精细控制。所以把不同应用的资源放在不同的命名空间。
13. 系统默认创建了哪几个namespace?
4个,default、kube-node-lease、kube-public、kube-system
14. 请解释Pod是什么?
K8s中运行的最小单位,包含一个或多个容器,它们共享网络和存储,生命周期一致。