K8S云平台部署过程说明

近期由于工作原因,在项目支持的过程中,进行了一次K8S的基础环境部署,云平台一直是公司的重要底座,而我由于一系列原因,一直没有亲自尝试,通过本次的机会,让我重新做了一遍,也找到了和以前部署传统环境一样的感觉,虽然还有些生疏和不解,但是迈出了这一步,也算是深入学习的开始 。
环境部署是作为公司技术人员,必须要掌握的,我们的产品都是基于这个基本条件下进行搭建使用的,因此对于环境的了解,原理的学习,对于我们后续问题排查,产品问题定位都是有所帮助的 。
集群架构

K8S云平台部署过程说明

文章插图
 
其核心思想是让 K8S master 节点中的各类组件具备高可用性,消除单点故障
1.kube-apiserver:对外暴露了 K8S API,是整个集群的访问入口 。由于 apiserver 本身无状态,可以通过启动多个实例并结合负载均衡器实现高可用 。
2.etcd:用于存储 K8S 集群的网络配置和对象的状态信息,是整个集群的数据中心 。可以通过启动奇数个 etcd 实例建立一个冗余的,可靠的数据存储层 。
3.kube-scheduler:为新创建的 pod 选择一个供他们运行的节点 。一个集群只能有一个活跃的 kube-scheduler 实例,可以同时启动多个 kube-scheduler 并利用领导者选举功能实现高可用 。
4.kube-controller-manager:集群内部的管理控制中心 。一个集群只能有一个活跃的 kube-controller-manager 实例,可以同时启动多个 kube-controller-manager 并利用领导者选举功能实现高可用 。
另外,构建集群时还需要注意下列问题
1)节点上 K8S 进程的可靠性 。需要让 kubelet、kube-scheduler、kube-controller-manager 等进程在出现故障后能自动重启 。
2)为 worker node 中的非 pod 进程预留资源,防止他们将与 pod 争夺资源导致节点资源短缺 。
部署架构
K8S云平台部署过程说明

文章插图
 
目前提供了5台服务器,供开发和测试环境使用,具体分配情况已经使用情况如如下:
K8S云平台部署过程说明

文章插图
 
环境准备进行配置前一些必要内容的处理,包括主机名的修改,网络调整、以及系统配置、安全策略等的调整,保证后续安装过程中的顺利进行
1.协调虚拟IP
部署高可用环境,需要两个虚拟IP的支持,一个用作内部集群的使用,另一个是用作外部集群使用,因此在与客户交互之初,就要协调好虚拟IP的网络情况,以便后续我们可以直接使用 。
我们这边拿到的两个IP分别为122和123,整理我用122作为了内部集群,123为外部的集群 。
2.修改主机名称
设置主机名,添加主机名与IP对应关系,如下:
K8S云平台部署过程说明

文章插图
 
修改5台虚拟机的hosts文件:
K8S云平台部署过程说明

文章插图
 

K8S云平台部署过程说明

文章插图
 
3.修改安全策略
安全策略的处理包括两个位置,一个是关闭selinux,一个是调整防火墙的策略,保证系统访问安全,同时保证后续部署过程中不会受到安全限制 。
> > > > 关闭selinux
K8S云平台部署过程说明

文章插图
 

K8S云平台部署过程说明

文章插图
 
> > > > 防火墙处理
调整防火墙的端口,如下:
K8S云平台部署过程说明

文章插图
 
防火墙白名单添加,如下:
K8S云平台部署过程说明

文章插图
 
上述调整完成之后,将防火墙进行重启:
K8S云平台部署过程说明

文章插图
 
4.修改网络映射
将桥接的IPv4流量传递到iptables的链:
K8S云平台部署过程说明

文章插图
 

K8S云平台部署过程说明

文章插图
 
添加完毕后执行生效,如下:
K8S云平台部署过程说明

文章插图
 


推荐阅读