声明:这是我在大学毕业后进入第一家互联网公司学习的内容
准备
前置要求与约定
-
集群会使用到的端口号。
-
各服务器时间与时区需一致,集群内服务器间时间差值不能大于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段<

371

被折叠的 条评论
为什么被折叠?



