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

答:ca-certificates:用于管理可信证书颁发机构(CA)证书的软件包

gnupg:是一套开源的加密软件,基于 PGP标准,主要用于数据加密、数字签名和密钥管理。其中包含gpg,gpg-agent,gpgconf等工具。

lsb-release:用于查询Linux系统LSB兼容信息的工具包,提供发行版信息,支持跨系统兼容。

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

答:docker-ce:开源的,是 Docker 的核心引擎,是实现容器创建、运行、管理的核心组件。处理 Docker 镜像的拉取、存储、构建等操作。并通过 Linux 内核的 Namespace 和 Cgroups 等技术,实现容器的隔离

docker-ce-cli:Docker 的命令行接口工具,提供用户与 Docker 引擎交互的命令集。解析与传递指令,实现格式化输出。

containerd.io从Docker中分离出的底层容器运行时,负责容器的实际运行、镜像管理等基础操作,遵循OCI标准。

docker-compose-plugin:是 Docker 官方的Compose插件,用于通过配置文件定义和管理多容器应用。用来实现多容器编排,服务依赖管理,配置复用与版本控制等功能。

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

答:错。K8s只是不再直接支持 Docker Engine 作为运行时,但完全兼容Docker镜像和工具链,通过containerd等运行时仍可间接使用Docker相关功能。

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

答:例如创建一个基于Ubuntu镜像的容器,并进入交互模式

docker run -it --name my-ubuntu ubuntu:22.04 /bin/bash  执行后会直接进入容器内部的 bash 终端

或对已创建的容器进行交互式访问:用docker exec -it命令如:

docker exec -it my-ubuntu /bin/bash

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

答:保证容器资源限制的有效性;避免性能损耗,关闭 swap 可确保容器始终使用物理内存,避免因磁盘交换导致的性能损耗

6. 解释br_netfilter。

答:br_netfilter是连接Linux桥接网络与netfilter防火墙框架的关键模块,它确保Kubernetes集群中容器间的网络流量能够被网络策略(NetworkPolicy)管控,是实现Pod网络隔离和安全访问的基础组件。

7. 解释kubeadm, kubectl, kubelet。

答:kubeadm:用于快速部署和管理 Kubernetes 集群的命令行工具,旨在简化集群的初始化、升级、重置等操作,遵循 K8s 最佳实践。

kubectl:是用户与 Kubernetes 集群交互的命令行工具,通过调用 K8s API Server 实现对集群资源的查询、创建、更新和删除等操作。

kubelet:是运行在每个节点上的代理程序,负责确保容器按照Pod规范运行,是 K8s 在节点上的 “执行者”。

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

答:核心流程是:环境标准化→安装依赖组件(容器运行时、kube 工具)→初始化控制平面→配置网络→加入工作节点。

1).环境准备:规划控制平面节点和工作节点,确保所有节点操作系统符合要求,关闭 Swap,配置主机名与时间同步,开放必要网络端口。

2).安装依赖:在所有节点部署容器运行时(如 Containerd),以及 kubeadm(集群部署工具)、kubelet(节点代理)、kubectl(命令行工具)。

3).初始化控制平面:通过 kubeadm 在控制平面节点初始化集群,自动部署 API Server、etcd、调度器等核心组件,生成节点加入凭证。

4).部署网络插件:安装 Calico、Flannel 等网络插件,实现 Pod 跨节点通信,确保节点状态变为 Ready。

5).加入工作节点:使用控制平面生成的凭证,在工作节点执行加入命令,完成与集群的连接和注册。

6).验证集群:检查节点状态、核心组件运行情况,通过部署测试应用确认集群功能正常。

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

答:为集群提供网络连接、网络隔离和网络安全能力,是实现Pod间通信与访问控制的核心组件。Calico 不仅解决了 K8s 集群中 Pod 的基础网络连接问题,更通过强大的网络策略能力,为容器化应用提供了安全、可控的网络环境

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

答:kube-apiserver:提供 RESTful API 接口,处理所有集群操作请求(如创建 Pod、部署服务等)。

etcd:存储整个集群的所有状态数据,是 Kubernetes 的 “数据大脑”。

kube-controller-manager:运行一系列控制器进程,确保集群实际状态与用户期望状态一致

kube-scheduler:根据集群资源状况和调度策略,为新创建的 Pod 选择最合适的工作节点运行。

11. kubelet, kube-proxy作用。

答:kubelet:运行在每个节点上的代理程序,是控制平面在节点上的 “执行者”,确保容器按照 Pod 规范(Pod Spec)正确运行

kube-proxy:运行在每个节点上的网络代理组件,核心作用是实现Kubernetes Service的网络功能,确保Pod与Service之间、Pod跨节点之间的网络通信正常。

12. 什么是K8s的namespace?

答:Namespace(命名空间)是一种用于在集群内部对资源进行逻辑隔离的机制。它通过为资源分配独立的 “命名空间”,实现同一集群内不同团队、项目或环境的资源分隔,避免命名冲突并简化管理。

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

答:1)default:未明确指定命名空间的资会默认存放在此空间。主要用于用户创建的应用资源。

2)kube-system:专门用于存放Kubernetes系统组件及相关资源(如 kube-apiserver、kube-controller-manager、网络插件 Calico/Flannel 等)。这些资源是集群运行的核心。

3)kube-public:一个公开可见的命名空间,所有用户(包括未认证用户)均可访问。默认包含一些集群公共信息,通常用于存储无需权限控制的公共资源。

4)kube-node-lease:用于存储节点的 Lease 资源,帮助 kube-controller-manager 快速检测节点健康状态;替代了早期的节点心跳频繁更新 etcd 的机制,提升性能。

14. 请解释Pod是什么?

答 Pod是“一组紧密关联的容器集合”,这些容器共享网络命名空间(IP 地址、端口等)、存储卷(文件系统)和运行环境,在逻辑上视为一个 “应用单元” 协同工作。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐