一小时轻松部署 Kubernetes 高可用集群
1 云原生
云计算是指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的资源。提供资源的网
络被称为“云”。 “云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付
费。意味着计算能力也可以作为一种商品进行流通,就像煤气、水电一样,取用方便,费用低廉。
云原生即天生是为了云环境而设计的相关技术
云原生的代表技术包括: 微服务、容器、服务网格、不可变基础设施和声明式API。
CNCF Cloud Native Computing Foundation,云原生计算基金会,它致力于云原生(Cloud Native)技
术的普及和可持续发展
CNCF 当前包含著名的项目有 Containerd、Kubernetes、Prometheus 、Etcd、Harbor、CoreDNS等
2 Kubernetes 集群架构
2.1 Kubernetes 的主机节点类型
Master: 管理(控制)节点,相当于公司的管理层
Master 节点主要由 API Server 、Controller-Manager 和Scheduler 三个组件,以及一个用于存储
集群状态的 Etcd存储服务组成
Node (Worker): 工作worker节点,相当于公司具体完成工作的基层员工
Node节点则主要包含 Kubelet 、Kube Proxy 及容器运行时( 当前docker 仍是最为常用的实现)
三个组件,它们承载运行各类应用容器
2.2 Kubernetes 集群网络模型
三个网络功能
节点网络
集群主机节点间的通信网络,并负责打通与集群外部端点间的通信
Pod网络
为集群上的Pod对象提供的网络
每个pod 从此网络动态获取地址,且每次重启pod后IP地址可能会变化
需要经由CNI网络插件实现,例如Flannel、Calico、Cilium等
Service网络
主要用于解决 pod 使用动态地址问题
3 Kubernetes 集群组件
kubernetes组件分成三种
Control Plane Components 控制平台组件: master主机
API Server
Controller-Manager
Scheduler
Etcd
Node Components 节点组件
Kubelet
Kube Proxy
Docker
Addons 附件
flannel
CoreDNS
4 Kubernetes集群高可用架构部署
4.1 Kubernetes 高可用集群部署架构
IP 主机名 角色
10.0.0.101 master1.magedu.org K8s 集群主节点 1,Master和etcd
10.0.0.102 master2.magedu.org K8s 集群主节点 2,Master和etcd
10.0.0.103 master3.magedu.org K8s 集群主节点 3,Master和etcd
10.0.0.104 node1.magedu.org K8s 集群工作节点 1
10.0.0.105 node2.magedu.org K8s 集群工作节点 2
10.0.0.106 node3.magedu.org K8s 集群工作节点 3
10.0.0.107 ha1.magedu.org K8s 主节点访问入口 1,提供高可用及负载均衡
10.0.0.108 ha2.magedu.org K8s 主节点访问入口 2,提供高可用及负载均衡
10.0.0.109 harbor.magedu.org 容器镜像仓库
10.0.0.100 k8s.magedu.org VIP,在ha1和ha2主机实现
4.2 Kubernetes集群部署流程说明
每个节点主机的初始环境准备
准备代理服务,以便访问k8s.gcr.io,或根据部署过程提示的方法获取相应的Image
Kubernetes集群API访问入口的高可用和harbor(可选)
在所有Master和Node节点都安装容器运行时,实际Kubernetes只使用其中的Containerd
在所有Master和Node节点安装kubeadm 、kubelet、kubectl(在node节点可不安装)
在第一个 master 节点运行 kubeadm init 初始化命令 ,并验证 master 节点状态
在第一个 master 节点安装配置网络插件
在其它master节点运行kubeadm join 命令加入到控制平面集群中(测试环境可选)
在所有 node 节点使用 kubeadm join 命令加入集群 , 并验证 node 节点状态
创建 pod 并启动容器测试访问 ,并测试网络通信
4.3 Kubernetes集群部署流程
4.3.1 初始化
硬件准备环境: 每个主机至少2G以上内存,CPU2核以上
操作系统: 最小化安装支持Kubernetes的Linux系统
所有节点实现基于 ssh key 验证(可选)
唯一的主机名,MAC地址以及product_uuid和主机名解析
保证各个节点网络配置正确,并且保证通信正常
禁用 swap
禁用 SELinux
放行Kubernetes使用到的相关端口或禁用firewalld/iptables
配置正确的时区和时间同步
内核参数优化
[root@ubuntu2004 ~]#hostnamectl set-hostname master1.magedu.org [root@ubuntu2004 ~]#sed -i ‘s/10.0.0.20/10.0.0.10/’ /etc/netplan/01-netcfg.yaml ~# cat >> /etc/hosts <<EOF 10.0.0.100 k8s k8s.magedu.org 10.0.0.101 master1 master1.magedu.org 10.0.0.102 master2 master2.magedu.org 10.0.0.103 master3 master3.magedu.org 10.0.0.104 node1 node1.magedu.org 10.0.0.105 node2 node2.magedu.org 10.0.0.106 node3 node3.magedu.org 10.0.0.107 ha1 ha1.magedu.org 10.0.0.108 ha2 ha2.magedu.org 10.0.0.109 harbor harbor.magedu.org EOF [root@ubuntu2004 ~]#sed -i ‘/swap/s/^/#/’ /etc/fstab;swapoff -a [root@ubuntu2004 ~]#timedatectl set-timezone Asia/Shanghai
4.3.2 部署 harbor 仓库和高可用反
04-26
4004
10-21
928
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交