【k8s】k8s中的几个概念性问题

发布于:2025-08-12 ⋅ 阅读:(15) ⋅ 点赞:(0)

目录

1.ca-certificates, gnupg, lsb-release三个包的解释。

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

3. K8s在1.2之后就不再支持docker,请解释对错。

4. 举例说明创建容器以及以交互方式访问容器的命令?

5.部署安装K8s为什么要关闭swap分区?

6.解释br_netfilter。

7.解释kubeadm, kubectl, kubelet。

8.详细说明K8s集群的创建过程。

9. Calico网络插件在K8s集群的作用。

10. kube-apiserver, etcd, kube-controller-manager, kube-scheduler的作用。

11. kubelet, kube-proxy作用。

12. 什么是K8s的namespace?

13. 系统默认创建了哪几个namespace?

14. 请解释Pod是什么?


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。

  1. 搭建集群:初始化master节点,让worker节点加入集群
  2. 命令行工具,管理集群中的资源
  3. 每个节点的代理,听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的作用。

这些都是控制平面的组件。

  1. api服务器是控制平面的前端,将接口暴露给外部,与外界实现沟通。可以水平扩展。还可以接收kubelet发送的容器状态数据。
  2. 键值对形式存储集群数据
  3. 这是一个控制器管理器,能够运行控制器进程。实现scheduler分析出的策略
  4. 调度器,监视已创建但尚未分配的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中运行的最小单位,包含一个或多个容器,它们共享网络和存储,生命周期一致。