使用 anasible 搭建一个多 master 多 worker 的 k8s 集群

发布时间 2023-12-03 21:39:13作者: Baocang

kubernetes + istio 是目前最强大,也是最易于使用的服务网格方案。

要使用kubernetes + istio, 首先要搭建 kubernets 集群。搭建kubernetes 集群的

方式有很多,其中使用anisble自动化搭建kubernetes集群算是最具合适的方案了。

服务器列表:

192.168.2.58  k8s-lvs-01 #lvs 主服务器
192.168.2.233 k8s-lvs-02 #lvs 备用服务器
192.168.2.85 k8s-main-01 # k8s master 节点 1
192.168.2.155 k8s-main-02 # k8s master 节点 2
192.168.2.254 k8s-main-03 # k8s master 节点 3
192.168.2.110 k8s-node-01 # k8s worker 节点 1
192.168.2.214 k8s-node-02 # k8s worker 节点 2
192.168.2.36 k8s-node-03 # k8s worker 节点 3

服务器配置要求:

lvs:2核心CPU,4G内存
k8s master & worker:4核心CPU,8G内存

编写 anisble hosts文件

文件名: hosts.ini

mkdir anisble-workspace
cd anisble-workspace
touch hosts.ini

使用自己习惯用的文件编辑器编辑hosts.ini, 并输入以下内容:

[lvs] # 给这组服务器IP用起的名字,可以随意起
# 以下内容格式如下:
# IP ssh端口号 ssh用户名 登录ssh时使用的密码 执行sudo时使用的密码
192.168.2.58 ansible_ssh_port=22 ansible_ssh_user=baocang ansible_ssh_pass="P@ssw0rd" ansible_sudo_pass="P@ssw0rd"
192.168.2.233 ansible_ssh_port=22 ansible_ssh_user=baocang ansible_ssh_pass="P@ssw0rd" ansible_sudo_pass="P@ssw0rd"

[masters] # 给这组服务器IP用起的名字,可以随意起
192.168.2.85 ansible_ssh_port=22 ansible_ssh_user=baocang ansible_ssh_pass="P@ssw0rd" ansible_sudo_pass="P@ssw0rd"
192.168.2.155 ansible_ssh_port=22 ansible_ssh_user=baocang ansible_ssh_pass="P@ssw0rd" ansible_sudo_pass="P@ssw0rd"
192.168.2.254 ansible_ssh_port=22 ansible_ssh_user=baocang ansible_ssh_pass="P@ssw0rd" ansible_sudo_pass="P@ssw0rd"

[workers]
192.168.2.110 ansible_ssh_port=22 ansible_ssh_user=baocang ansible_ssh_pass="P@ssw0rd" ansible_sudo_pass="P@ssw0rd"
192.168.2.214 ansible_ssh_port=22 ansible_ssh_user=baocang ansible_ssh_pass="P@ssw0rd" ansible_sudo_pass="P@ssw0rd"
192.168.2.36 ansible_ssh_port=22 ansible_ssh_user=baocang ansible_ssh_pass="P@ssw0rd" ansible_sudo_pass="P@ssw0rd"

[k8s-cluster:children]
masters
workers