Kubernetes v1.11.x HA 全手动安装教程(TL; DR)

2023年 7月 9日 28.7k 0

本篇延续过往手动安装方式来部署 Kubernetes v1.11.x 版本的 High Availability 集群,而此次教学将直接透过裸机进行部署 Kubernetes 集群。以手动安装的目标是学习 Kubernetes 各组件关析、流程、设定与部署方式。若不想这么累的话,可以参考 Picking the Right Solution 来选择自己最喜欢的方式。

Kubernetes部署信息

Kubernetes部署的版本信息:

  • Kubernetes: v1.11.0
  • CNI: v0.7.1
  • Etcd: v3.3.8
  • Docker: v18.05.0-ce
  • Calico: v3.1

Kubernetes部署的网路信息:

  • Cluster IP CIDR: 10.244.0.0/16
  • Service Cluster IP CIDR: 10.96.0.0/12
  • Service DNS IP: 10.96.0.10
  • DNS DN: cluster.local
  • Kubernetes API VIP: 172.22.132.9
  • Kubernetes Ingress VIP: 172.22.132.8

节点信息

本教程采用以下节点数与机器规格进行部署裸机(Bare-metal),操作系统采用Ubuntu 16+(理论上 CentOS 7+ 也行)进行测试:

IP Address Hostname CPU Memory Extra Device
172.22.132.10 K8S-M1 4 16G None
172.22.132.11 K8S-M2 4 16G None
172.22.132.12 K8S-M3 4 16G None
172.22.132.13 K8S-G1 4 16G GTX 1060 3G
172.22.132.14 K8S-G2 4 16G GTX 1060 3G

另外由所有 master 节点提供一组 VIP 172.22.132.9。

  • 这边m为 K8s Master 节点,g为 K8s Node 节点。
  • 所有操作全部用root使用者进行,主要方便部署用。

事前准备

开始部署集群前需先确保以下条件已达成:

  • 所有节点彼此网络互通,并且k8s-m1 SSH 登入其他节点为 passwdless,由于过程中很多会在某台节点(k8s-m1)上以 SSH 复制与操作其他节点。
  • 确认所有防火墙与 SELinux 已关闭。如 CentOS:
$ systemctl stop firewalld && systemctl disable firewalld
$ setenforce 0
$ vim /etc/selinux/config
SELINUX=disabled

关闭是为了方便安装使用,若有需要防火墙可以参考 Required ports 来设定。

  • 所有节点需要设定/etc/hosts解析到所有集群主机。
...
172.22.132.10 k8s-m1
172.22.132.11 k8s-m2
172.22.132.12 k8s-m3
172.22.132.13 k8s-g1
172.22.132.14 k8s-g2
  • 所有节点需要安装 Docker CE 版本的容器引擎:
$ curl -fsSL https://get.docker.com/ | sh

不管是在 Ubuntu 或 CentOS 都只需要执行该指令就会自动安装最新版 Docker。
CentOS 安装完成后,需要再执行以下指令:

$ systemctl enable docker && systemctl start docker
  • 所有节点需要设定以下系统参数。
$ cat

相关文章

KubeSphere 部署向量数据库 Milvus 实战指南
探索 Kubernetes 持久化存储之 Longhorn 初窥门径
征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
那些年在 Terraform 上吃到的糖和踩过的坑
无需 Kubernetes 测试 Kubernetes 网络实现
Kubernetes v1.31 中的移除和主要变更

发布评论