目录
1.部署安装 K8s 为什么要关闭 swap 分区?
2.解释 br_netfilter。
3.解释 kubeadm, kubectl, kubelet。
4.详细说明 K8s 集群的创建过程。
5. Calico 网络插件在 K8s 集群的作用。
6. kube-apiserver, kube-controller-manager, kube-scheduler, etcd的作用。
7. kubelet, kube-proxy 作用。
1.部署安装 K8s 为什么要关闭 swap 分区?
在虚拟内存管理系统中,尽管 swap 可以在磁盘上增加系统的可用内存量,但在 磁盘虚拟页面和内存页面交换过程中会带来额外的磁盘 I/O 负载,加之容器运行环境自身对磁盘的吞吐量有很高的需求,因此,swap 分区的使用会在高负载情况下导致 K8s 系统的整体性能下降并有可能导致应用程序的崩溃。
2.解释 br_netfilter。
br_netfilter 模块用于将桥接流量转发至 iptables 链,如果没有加载 br_netfilter 模块,其并不会影响不同 node 上的 pod 之间的通信,但是会影响相同 node 内的 pod 之间通过 service 实现的通信。
3.解释 kubeadm, kubectl, kubelet。
① kubeadm 提供了构建集群的指令,kubeadm init 初始化集群,kubeadm join 扩充集群节点。
② kubectl 是 K8s 集群的命令行工具,能够对集群本身进行管理,并进行容器化应用的安装和部署。
③ kubelet 在集群中每个节点上运行,负责与 AIP-server 进行通信,监控与维护 Pod 中容器的生
命周期,同时也负责 CSI(容器存储接口)和 CNI(容器网络接口)的管理。
4.详细说明 K8s 集群的创建过程。
① 第一步:
安装与配置服务器节点。
② 第二步:
在各节点上安装 docker-ce,docker-ce-cli,containerd.io,docker-compose-plugin;
部署 CRI-Docker。
③ 第三步:
在个节点 关闭 Swap 分区;
加载 br_netfilter 以允许 iptables 桥接流量;
安装 kubeadm,kubectl 和 kubelete 软件包;
集成 CRI-Docker。
④ 第四步:
在 master 节点上 部署集群(kubeadm.yaml),创建集群(kubeadm init),加入各节点(kubeadm join)。
⑤ 第五步:
部署 Calico 网络插件,检查验证集群状态。
5. Calico 网络插件在 K8s 集群的作用。
Calico 是一个开源网络和网络安全解决方案,适用于容器、虚拟机和基于本地主机的工作负载。
Calico 本身是一个三层的虚拟网络方案,它将每个节点都当作路由器( router ),将每个节点的容器都当作是“节点路由器”的一个终端并为其分配一个 IP 地址,各节点路由器通过 BGP ( Border Gateway Protocol)学习生成路由规则,从而将不同节点上的容器连接起来,从而为 K8s 集群提供了超快的性能和真正的云原生可扩展性,极大地扩展了网络规模和网络边界。
6. kube-apiserver, kube-controller-manager, kube-scheduler, etcd的作用。
① kube-apiserver :是的 K8s 的核心控制层,可通过部署更多实例来横向扩展。它对外暴露了 K8s API,是整个集群管理的 API 接口,负责集群内部各个模块之间通信,负责集群安全控制。
② kube-controller-manager :是处理集群中常规任务的后台线程,当集群资源组件发生各种故障导致系统状态发生变化时,它会通过 API Server 尝试将系统状态修复到“期望状态”。
③ kube-scheduler :用来监视新创建但尚未分配节点的 Pod ,并选择一个节点供其运行。
④ etcd :是一致性的 Key/Value 分布式存储,存储了 k8s 集群中所有的元数据,包括各种对象的状态和元信息配置、calico 等网络插件的配置信息。
7. kubelet, kube-proxy 作用。
② kube-proxy :运行在每个 node 上,负责监听 service 和 endpoint 的变化情况,并通过 iptables 等来为服务配置负载均衡。