最小化安装 K8s (Legacy)
本文档主要介绍在 Linux 操作系统,部署 CloudCanal 所需的最小化 Kubernetes 环境。
服务器要求
| 组件 | 数量 | 要求 |
|---|---|---|
| Master 节点 | 1 台 | 2Gi CPU;2GB Memory |
| Node 节点 | 1 台 | 6Gi CPU;8GB Memory |
部署步骤
安装基础软件
- 在 所有节点 上安装如下基础软件
- Docker 安装
- Kubernetes 工具安装
-
CentOS / RHEL
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install -y docker-ce-20.10.9-3.* docker-ce-cli-20.10.9-3.*
sudo systemctl start docker
sudo echo '{"exec-opts": ["native.cgroupdriver=systemd"]}' > /etc/docker/daemon.json
sudo systemctl restart docker -
Ubuntu
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get -y install docker-ce=5:20.10.24~3-0~ubuntu-* docker-ce-cli=5:20.10.24~3-0~ubuntu-*
sudo systemctl start docker
sudo echo '{"exec-opts": ["native.cgroupdriver=systemd"]}' > /etc/docker/daemon.json
sudo systemctl restart docker
-
CentOS / RHEL
信息如果是 arm 架构 CPU,请将以下 脚本中的 baseurl 值替换为 https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-aarch64
sudo cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
sudo yum install -y kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl start kubelet -
Ubuntu
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubelet=1.23.6-00 kubeadm=1.23.6-00 kubectl=1.23.6-00
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl start kubelet
部署 Master 节点
初始化
-
修改以下脚本中
<local_ip>为 Master 节点私网 IP,并在 Master 节点 中执行。kubeadm init \
--apiserver-advertise-address=<local_ip> \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.23.6 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16

-
保存上述操作最后输出的 kubeadm join 命令,以备加入 Kubernetes Node 的时候执行。
-
初始化配置文件。
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
安装 CNI 网络插件
-
在 Master 节点 中,下载 calico 配置文件。
信息如果是 arm 架构 CPU,请替换为对应架构 calico 安装包。
# only for x86
curl https://gitee.com/clougence/public-demo/raw/master/calico-yaml/calico.tar.gz -O
tar -xzvf calico.tar.gz -
在 calico.yaml 文件中,取消注释 CALICO_IPV4POOL_CIDR 配置项,并将其 value 修改为 Master 节点初始化时指定的网段 (--pod-network-cidr=10.244.0.0/16)。

-
安装 calico。
kubectl create -f calico.yaml
加入 Node 节点
-
在 Node 节点 中,执行上面保存的 kubeadm join 命令。
kubeadm join 192.168.2.251:6443
--token brv7nq.adkd0xr0wgl69z3k \
--discovery-token-ca-cert-hash sha256:4cb876273f80cb023c4b00c35272d762ab7511aec461fe615f81af84edf8b5a4
验证部署
-
在 Master 节点 中查看所有节点状态。
kubectl get nodes
-
在 Master 节点 中查看 Pod 状态,等待 READY 项全为 1/1 后,即为部署成功。
kubectl get pod -n kube-system
