Skip to content

022使用Kubeasz离线安装K8s

简介

在 kubeasz 2x 版本,多节点高可用集群安装可以使用2种方式

1.预先配置节点信息后,直接安装多节点高可用集群 2.先部署单节点集群 AllinOne部署,然后通过 节点添加 扩容成高可用集群

本文将采用方式2,逐渐搭建高可用集群

新节点初始化(包括master和node节点)

shell
# 在node配置python3(一定要配置)
curl https://oss.odboy.cn/blog/files/k8s/centos7/python3.tar.gz > python3.tar.gz
cp python3.tar.gz /usr/local/
cd /usr/local/
tar -xzvf python3.tar.gz
echo 'export PATH="/usr/local/python3/bin:${PATH}"' > /etc/profile.d/python3.sh
source /etc/profile
python3 -m pip install --upgrade pip
mkdir -p ~/.pip
cat << EOF > ~/.pip/pip.conf
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host = mirrors.aliyun.com
EOF
ln -s /usr/local/python3/bin/python3 /usr/bin/python3

# 在线安装ansible,尽量不安装最新版, 方式1
pip3 install ansible==2.4.6.0

# 离线安装ansible(在有网的机器上下载所有包), 方式2
/usr/local/python3/bin/pip3 --default-timeout=1000 download ansible==2.4.6.0 -d ansible2.4.6.0 --trusted-host mirrors.aliyun.com
tar -czvf ansible2.4.6.0.tar.gz ansible2.4.6.0
scp ansible2.4.6.0.tar.gz root@192.168.235.140:/usr/local/
## 在没网的机器上进行本地安装
ssh root@192.168.235.140
cd /usr/local
tar -xzvf ansible2.4.6.0.tar.gz
/usr/local/python3/bin/pip3 install ansible --no-index --find-links=ansible2.4.6.0/

# 离线安装ansible(在有网的机器上下载压缩包), 方式3
curl https://oss.odboy.cn/blog/files/k3s/ansible2.4.6.0-python3.tar.gz > ansible2.4.6.0-python3.tar.gz
## 在没网的机器上进行本地安装
ssh root@192.168.235.140
cd /usr/local
tar -xzvf ansible2.4.6.0-python3.tar.gz
/usr/local/python3/bin/pip3 install ansible --no-index --find-links=ansible2.4.6.0/

Node操作

shell
# 免密认证
ssh-copy-id [node节点ip地址]

# 非22端口免密
ssh-copy-id -p [node节点ssh port] [node节点ip地址]

# 添加node节点(master节点执行)
/etc/kubeasz/ezctl add-node [集群名称] [node节点ip地址] k8s_nodename=[自定义节点的名称]

# 添加node节点(master节点执行)
/etc/kubeasz/ezctl add-node [集群名称] [node节点ip地址] ansible_ssh_port=[node节点ssh port]  k8s_nodename=[自定义节点的名称]

# 例如
# 这里的default是因为我的集群名就是default。 ls -al /etc/kubeasz/clusters/
/etc/kubeasz/ezctl add-node default 192.168.235.140 k8s_nodename=k8s-node1

# 删除node节点(master节点执行)
/etc/kubeasz/ezctl del-node [集群名称] [node节点ip地址]

Master操作

shell
# 免密认证
ssh-copy-id [master节点ip地址]

# 非22端口免密
ssh-copy-id -p [master节点ssh port] [master节点ip地址]

# 添加node节点(master节点执行)
/etc/kubeasz/ezctl add-master [集群名称] [master节点ip地址] k8s_nodename=[自定义节点的名称]

# 添加node节点(master节点执行)
/etc/kubeasz/ezctl add-master [集群名称] [master节点ip地址] ansible_ssh_port=[master节点ssh port]  k8s_nodename=[自定义节点的名称]

# 例如
# 这里的default是因为我的集群名就是default。 ls -al /etc/kubeasz/clusters/
/etc/kubeasz/ezctl add-master default 192.168.235.140 k8s_nodename=k8s-master2

# 删除node节点(master节点执行)
/etc/kubeasz/ezctl del-master [集群名称] [master节点ip地址]