1.机器规划
192.168.139.11 跳板机
192.168.139.12 master01
192.168.139.13 node01
2.主机名解析
vim /etc/hosts
3.跳板机安装python3
yum install -y ncurses-devel gdbm-devel xz-devel sqlite-devel tk-devel uuid-devel readline-devel bzip2-devel libffi-devel
yum install -y openssl-devel openssl11 openssl11-devel
mkdir -p /test && cd /test
wget https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tgz
export CFLAGS=$(pkg-config --cflags openssl11)
export LDFLAGS=$(pkg-config --libs openssl11)
tar xf Python-3.10.4.tgz
cd Python-3.10.4/
./configure --enable-optimizations && make altinstall
python3.10 --version
pip3.10 --version
ln -sf /usr/local/bin/python3.10 /usr/bin/python3
ln -sf /usr/local/bin/pip3.10 /usr/bin/pip3
pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 list
4.下载kubespray源文件
https://github.com/kubernetes-sigs/kubespray/archive/refs/heads/release-2.20.zip
5.kubespray环境准备
mkdir /root/.pip
cd /root/.pip
vim pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
cd kubespray-release-2.20
pip3 install -r requirements.txt
ansible --version
6.创建主机清单
cp -rfp inventory/sample inventory/mycluster
方法1:
declare -a IPS=(192.168.139.12 192.168.139.13)
CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}
vim inventory/mycluster/hosts.yaml
ssh-keygen
ssh-copy-id root@192.168.139.12
ssh-copy-id root@192.168.139.13
方法二:
vim inventory/mycluster/inventory.ini
7.修改配置文件根据自己需要进行修改,可以不修改
inventory/mycluster/group_vars/k8s_cluster/addons.yml
inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml
8.国内镜像加速
cp inventory/mycluster/group_vars/all/offline.yml inventory/mycluster/group_vars/all/mirror.yml
sed -i -E '/# .*\{\{ files_repo/s/^# //g' inventory/mycluster/group_vars/all/mirror.yml
tee -a inventory/mycluster/group_vars/all/mirror.yml <<EOF
gcr_image_repo: "gcr.m.daocloud.io"
kube_image_repo: "k8s.m.daocloud.io"
docker_image_repo: "docker.m.daocloud.io"
quay_image_repo: "quay.m.daocloud.io"
github_image_repo: "ghcr.m.daocloud.io"
files_repo: "https://files.m.daocloud.io"
EOF
9.k8s集群部署主机安全设置
ansible all -i inventory/mycluster/hosts.yaml -m shell -a "systemctl stop firewalld && systemctl disable firewalld"
主机路由转发设置
ansible all -i inventory/mycluster/hosts.yaml -m shell -a "echo 'net.ipv4.ip_forward=1' | tee -a /etc/sysctl.conf"
禁用swap分区
ansible all -i inventory/mycluster/hosts.yaml -m shell -a "sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab && swapoff -a"
集群部署
ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root cluster.yml
集群卸载
ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root reset.yml