【K8s】整体认识K8s--K8s架构与集群创建过程

K8s架构

上图是Kubernetes的架构图。

从大的模块看,图中包含Master组件(APIs, scheduler, etc),Node节点和cloud端。

Master中,包含负责提供API服务的组件kube-apiserver;作为后台数据库的etcd,监听组件kube-scheduler;运行控制器的组件kube-controller-manager。

Node节点中包括运行在各个节点的客户端的kubelet,运行在各个节点的网络代理组件kube-proxy,支持运行容器底层环境的软件Container Runtime。

Cloud端作为集群外部的附加能力,通过与cloud-controller-manager组件对接,扩展k8s集群云上动态扩展的特性。
                        

集群创建过程

1、安装和配置服务器节点

2、在每个节点上安装docker-ce、docker-ce-cli、containerd.io、docker-compose-plugin,部署CRI-docker

3、在每个节点关闭swap分区,加载br-netfilter模块使流量转发到iptables链,安装kubectl、kubeadm、kubelet,集成CIR-docker

4、在master节点上编写kubeadm.yml文件来部署集群,然后使用kubeadm init 命令来创建集群,然后使用kubeadm join命令加入各节点

5、最后,部署网络插件

关于以上部署安装k8s过程中为什么要关闭swap分区?

在虚拟内存管理系统中,虽然交换分区可以增加内存容量,但是磁盘虚拟页面和内存页面的交换会增加磁盘I/O负担,容器自身的运行环境对磁盘的吞吐量有很高的要求,所以,启用交换分区会导致在高负载情况下k8s系统的整体性能下降。

Br_netfiler模块

Br_netfiler这个模块能让网桥上的流量加载到iptables链,从而应用Calico网络规则。iptables是用于节点内部的pod通信,如果不加载这个模块,会影响一个node内的pod之间的通信,但不会影响不同node上的pod之间的通信。因为不同node之间通过虚拟的隧道将数据转发到网卡,直接应用iptables,不涉及桥接设备。后边k8s集群的通信会细说。

kubeadm、kubectl、kubelet

接着说说kubeadm、kubectl、kubelet这几个指令。kubeadm提供了构建集群的指令,kubeadm init 初始化集群。Kubadm join 扩充集群节点。Kubectl是k8s的命令行工具,能够对集群本身进行管理,进行容器化应用的安装和部署。Kubelet在每个节点上运行,与api-server进行通信,监控和维护pod中容器的生命周期,也负责CSI(容器存储接口)和CRI(容器网络接口)的管理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值