1.服务器规划
为配置 Kubesphere 高可用集群,需要三台或三台以上机器作为 Master 节点,每台机器既可以作为 Master 也可以作为 Worker 节点。其中 Master 节点数量建议为单数。该示例中采用三台服务器,即作为 Master 节点也作为 Worker 节点,配置如下:
服务名称 | IP 地址 | 节点类型 | 服务器 | 挂接磁盘 |
---|---|---|---|---|
node1 | 192.168.1.103 | master、worker | 8 核心 CPU 16G 内存 400G 系统磁盘 | 300G |
node2 | 192.168.1.104 | master、worker | 8 核心 CPU 16G 内存 400G 系统磁盘 | 300G |
node3 | 192.168.1.105 | master、worker | 8 核心 CPU 16G 内存 400G 系统磁盘 | 300G |
2. 配置系统设置
2.1. 配置 root 账户登录
设置管理员账户登录密码
sudo passwd root
切换至管理员账户
su
配置 ssh 文件
vim /etc/ssh/sshd_config
按 i 开启编辑模式
找到内容 PermitRootLogin without-password 修改为 PermitRootLogin yes
ESC 键退出编辑模式
:wq(保存并退出编辑)
ip addr (查询 IP 地址)
使用 ip 地址链接 FinalShell
2.2. 设置 ubuntu20.04 设置静态 IP
cd /etc/netplan/ (cd 进入到下层文件, 找到 netplan 下面的文件夹)
假设 IP 地址修改为 192.168.1.100,子网掩码 24 位即 255.255.255.0,网关设置为 192.168.1.1,DNS1:223.5.5.5,DNS2:223.6.6.6
network:
ethernets:
ens33:
dhcp4: no
addresses: [192.168.1.100/24]
optional: true
gateway4: 192.168.1.1
nameservers:
addresses: [223.5.5.5,223.6.6.6]
version: 2
应用配置
sudo netplan apply
3. 安装 Docker 及依赖软件
安装 docker 命令
curl -sSL https://get.daocloud.io/docker | sh
安装 K8S 依赖的软件
apt-get install -y conntrack socat ebtables ipset
配置阿里云镜像加速器
登录阿里云>控制台>镜像工具>镜像加速器 找到对应操作系统命令并在服务器中执行
如 Ubuntu:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [“https://chn4ef4v.mirror.aliyuncs.com”]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
4. 使用 Kubekey 安装 Kubernetes
参考:https://github.com/kubesphere/kubekey/blob/master/README_zh-CN.md
具体步骤如下:
在官网下载最新版 Kubekey:https://github.com/kubesphere/kubekey/releases
选择 Linux AMD64 的 tar.gz 包如下图:
在 node1 中创建文件夹并将上一步下载的文件上传至该文件夹
# 创建 K8S 要下载文件的目录
mkdir kubekey
# 到 k8s 目录下
cd kubekey
将下载的 kubekey-v1.2.0-linux-amd64.tar.gz 文件上传至当前文件夹
解压缩文件:
tar -zxvf kubekey-v1.2.0-linux-amd64.tar.gz
可删除 kk 文件外的其他文件
给 kk 文件授权:
chmod 777 ./kk
创建配置文件
./kk create config
依据实际情况修改配置文件
使用配置文件创建集群
./kk create cluster -f /root/kubekey/config-sample.yaml
此过程会因为获取 GitHub 地址失败多次报错,报错时会显示错误链接,需手动下载指定链接的文件上传到安装目录并重新运行创建集群命令直至安装完成
等待创建完成
查看节点状态:
kubectl get node
等待所有节点为 Ready 状态则 Kubenetes 安装成功