Ansible一键部署高可用Kubernetes集群


声明:这是我在大学毕业后进入第一家互联网公司学习的内容


准备

前置要求与约定

  • 集群会使用到的端口号。

  • 各服务器时间与时区需一致,集群内服务器间时间差值不能大于1秒。

  • 文档以 4 个 CentOS 7.4 系统服务器安装高可用 Kubernetes 集群进行讲解。

  • 按照本文档安装 Kubernetes 集群时,Ansible 脚本会将服务器上防火墙关闭,请使用安全组进行网络权限控制。

  • Master(s) 服务器为 Kubernetes 控制服务器;Worker(s) 服务器为 Kubernetes 运算服务器;Etcd 服务器为组建Etcd 集群的服务器,Etcd 官方建议 Etcd 集群服务器个数为奇数个(比如1、3、5)以防止脑裂。

  • 为安全考虑按本教程安装的 Kubernetes 集群只会在 Master(s) 服务器上配置 kubectl 命令所需 kubeconfig,故 Worker(s) 服务器默认是无法使用 kubectl 命令的。

授权策略 协议类型 端口范围 授权类型 授权对象 描述
允许 TCP 80⁄80 地址段访问 0.0.0.0/0 http 协议访问集群
允许 TCP 443⁄443 地址段访问 0.0.0.0/0 https
允许 TCP 30000⁄32767 地址段访问 0.0.0.0/0 NodePort 访问集群
允许 全部 -1/-1 地址段访问 10.244.0.0/18 跨节点 Pod 之间互相访问

准备配置文件

链接:https://pan.baidu.com/s/1fMms1KR72mzZJ94sGm6NAg
提取码:1997
复制这段内容后打开百度网盘手机App,操作更方便哦

解压文件kubeadm-ha-master.tar.gz后有下面的文件

我已经打包好了

[root@VM-28-16 kubeadm-ha-master]# ll
total 132
-rw-r--r--  1 root root    89 Jun  4 17:00 00-kernel.yml
-rw-r--r--  1 root root   103 Jun  4 17:00 01-base.yml
-rw-r--r--  1 root root    73 Jun  4 17:00 02-docker.yml
-rw-r--r--  1 root root    88 Jun  4 17:00 03-kubernetes-component.yml
-rw-r--r--  1 root root   115 Jun  4 17:00 04-load-balancer.yml
-rw-r--r--  1 root root   160 Jun  4 17:00 05-etcd.yml
-rw-r--r--  1 root root   133 Jun  4 17:00 06-kubernetes-certificates.yml
-rw-r--r--  1 root root    89 Jun  4 17:00 07-kubernetes-master.yml
-rw-r--r--  1 root root    89 Jun  4 17:00 08-kubernetes-worker.yml
-rw-r--r--  1 root root   113 Jun  4 17:00 09-post.yml
-rw-r--r--  1 root root    86 Jun  4 17:00 21-network-plugin.yml
-rw-r--r--  1 root root    89 Jun  4 17:00 22-ingress-controller.yml
-rw-r--r--  1 root root    91 Jun  4 17:00 23-kubernetes-dashboard.yml
-rw-r--r--  1 root root    85 Jun  4 17:00 24-metrics-server.yml
-rw-r--r--  1 root root    83 Jun  4 17:00 25-cert-manager.yml
-rw-r--r--  1 root root  1084 Jun  4 17:00 90-init-cluster.yml
-rw-r--r--  1 root root   698 Jun  4 17:00 91-add-master.yml
-rw-r--r--  1 root root   557 Jun  4 17:00 92-add-worker.yml
-rw-r--r--  1 root root   523 Jun  4 17:00 93-add-etcd.yml
-rw-r--r--  1 root root   995 Jun  4 17:00 94-upgrade-cluster.yml
-rw-r--r--  1 root root   115 Jun  4 17:00 95-certificates-renew.yml
-rw-r--r--  1 root root   394 Jun  4 17:00 96-backup-cluster.yml
-rw-r--r--  1 root root   730 Jun  4 17:00 97-restore-cluster.yml
-rw-r--r--  1 root root   374 Jun  4 17:00 99-reset-cluster.yml
-rw-r--r--  1 root root 10506 Jun  4 17:00 ansible.cfg
drwxr-xr-x  2 root root   240 Jun  4 17:00 docs
drwxr-xr-x  2 root root   220 Jun  4 17:00 example
-rwxr-xr-x  1 root root   319 Jun  4 17:00 install-ansible.sh
-rw-r--r--  1 root root  3286 Jul 17 17:00 inventory.ini
-rw-r--r--  1 root root  2585 Jun  4 17:00 LICENSE
drwxr-xr-x  2 root root    95 Jun  4 17:00 offline
-rw-r--r--  1 root root  5700 Jun  4 17:00 README.md
drwxr-xr-x 14 root root   201 Jun  4 17:00 roles
-rw-r--r--  1 root root  3299 Jun  4 17:00 Vagrantfile

你只需要关注一个配置文件inventory.ini

inventory.ini

IP分配

节点 IP
master-1 172.31.28.16
master-2 172.31.28.17
master-3 172.31.28.18
node-1 172.31.28.19
node-2 172.31.28.21
node-3 172.31.28.22
VIP 172.31.28.10

网段划分

注意:你必须保证你划分的子网的网段个数要超过你总节点数

比如你一共要部署3master-3node类型,你的子网划分就不能是172.32.192.0/23 因为这样最多只能划分172.32.192.0-255/24和172.32.193.0-255/24网段,而每个节点的默认虚拟网关都是独占一段的

如果从172.32.192.0/24开始算起 你至少要给他划分到172.32.198.255,里面包含了(172.32.192.0/24 172.32.193.0/24 172.32.194.0/24 172.32.195.0/24 172.32.196.0/24 172.32.197.0/24 172.32.198.0/24)为了方便扩容,我们设为172.32.192.0/20 可以划分16个网段,也就是最多容纳16个节点(包括master和node)

集群pod ip段<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值