创建牧场主RKE2集群
总结 请参阅有关如何创建牧场主RKE2集群的示例。
使用此示例过程创建牧场主RKE2群集。
此过程将配置一个服务器节点和两个代理节点。在Rancher中,服务器节点充当控制平面节点,代理节点充当工作节点。根据群集中的节点数定制此过程。
我们提供此示例过程纯粹是为了提供信息。
有关创建RKE2集群的更多信息,请参阅官方牧场主文档: https://docs.rke2.io/install/quickstart。
在开始之前,请确保已启动计划用于群集节点的服务器或 VM。
注意:
下面的命令行示例并不总是显示绝对目录路径。我们让您可以在目录结构中应用这些命令。
配置服务器节点
使用此过程可以配置服务器节点。
服务器节点在 RKE2 中充当控制平面节点。我们的单群集示例中使用的服务器节点是可通过 IP 地址 172.16.0.11 访问的 Ubuntu 主机。
- 在本地计算机上,以 root 用户身份通过 SSH 连接到服务器节点。
config.yaml
在 创建包含/etc/rancher/rke2
以下内容的文件。cni: - none
- 安装、启用和启动
rke2-server
服务。- 下载 RKE2 安装脚本:
curl -sfL https://get.rke2.io -o install.sh
- 使安装脚本可执行。
chmod +x install.sh
- 将安装变量设置为指向所需的版本。
INSTALL_RKE2_CHANNEL=latest
INSTALL_RKE2_CHANNEL_URL=https://github.com/rancher/rke2/releases
- 运行安装脚本。
./install.sh
此脚本安装rke2-server
服务。 - 启用并启动
rke2-server
该服务。systemctl enable rke2-server.service
systemctl start rke2-server.service
- 验证服务的状态
rke2-server
。systemctl status rke2-server
● rke2-server.service - Rancher Kubernetes Engine v2 (server) Loaded: loaded (/usr/local/lib/systemd/system/rke2-server.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2023-06-06 17:37:38 UTC; 1 day 22h ago
- 下载 RKE2 安装脚本:
- 将 kubeconfig 文件复制到默认的 kubeconfig 目录中。
mkdir ~/.kube
cp /etc/rancher/rke2/rke2.yaml ~/.kube/config
- 将 kubectl 复制到默认路径中。为了方便起见,Rancher在所示位置提供了kubectl二进制文件。
cp /var/lib/rancher/rke2/bin/kubectl /usr/local/bin
- 显示容器的状态。
kubectl get pods -A -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system cloud-controller-manager-rke2-s1 1/1 Running 0 11m 172.16.0.11 rke2-s1 <none> <none> kube-system etcd-rke2-s1 1/1 Running 0 11m 172.16.0.11 rke2-s1 <none> <none> kube-system helm-install-rke2-coredns-trcjf 0/1 Completed 0 10m 172.16.0.11 rke2-s1 <none> <none> kube-system helm-install-rke2-ingress-nginx-jghfq 0/1 Pending 0 10m <none> <none> <none> <none> kube-system helm-install-rke2-metrics-server-nvcp6 0/1 Pending 0 10m <none> <none> <none> <none> kube-system helm-install-rke2-snapshot-controller-9gbf7 0/1 Pending 0 10m <none> <none> <none> <none> kube-system helm-install-rke2-snapshot-controller-crd-l5wnn 0/1 Pending 0 10m <none> <none> <none> <none> kube-system helm-install-rke2-snapshot-validation-webhook-kqmnp 0/1 Pending 0 10m <none> <none> <none> <none> kube-system kube-apiserver-rke2-s1 1/1 Running 0 11m 172.16.0.11 rke2-s1 <none> <none> kube-system kube-controller-manager-rke2-s1 1/1 Running 0 11m 172.16.0.11 rke2-s1 <none> <none> kube-system kube-proxy-rke2-s1 1/1 Running 0 11m 172.16.0.11 rke2-s1 <none> <none> kube-system kube-scheduler-rke2-s1 1/1 Running 0 11m 172.16.0.11 rke2-s1 <none> <none> kube-system rke2-coredns-rke2-coredns-6b9548f79f-snzl4 0/1 Pending 0 10m <none> <none> <none> <none> kube-system rke2-coredns-rke2-coredns-autoscaler-57647bc7cf-dc2gx 0/1 Pending 0 10m <none> <none> <none> <none>
某些 Pod 未运行,因为尚未安装 CN2。 - 下载并安装 CNI 插件。
- 为 CNI 插件创建以下目录。
mkdir -p /opt/cni/bin
- 下载 CNI 插件。
cd /opt/cni/bin/
wget 'https://github.com/containernetworking/plugins/releases/download/v1.1.1/cni-plugins-linux-amd64-v1.1.1.tgz'
- 解压缩并解压缩 .tgz 文件。
tar -xzvf cni-plugins-linux-amd64-v1.1.1.tgz
- 为 CNI 插件创建以下目录。
配置代理节点
此程序用于配置代理节点。
代理节点在 RKE2 中充当工作器节点。我们的单群集示例中使用的代理节点是可通过 IP 地址 172.16.0.12 和 172.16.0.13 访问的 Ubuntu 主机。
注意:
对所需数量的代理节点重复这些步骤。
- 以 root 用户身份通过 SSH 加入代理节点。
config.yaml
在/etc/rancher/rke2
目录中创建一个包含以下内容的文件:server: https://<server_node_IP>:9345 token: <server_node_token>
是server_node_IP
服务器(控制平面)节点的 IP 地址。是在server_node_token
服务器节点上找到/var/lib/rancher/rke2/server/node-token
的令牌。- 安装、启用和启动
rke2-agent
服务。- 下载 RKE2 安装脚本:
curl -sfL https://get.rke2.io -o install.sh
- 使安装脚本可执行。
chmod +x install.sh
- 设置安装类型。
INSTALL_RKE2_TYPE="agent"
- 运行安装脚本。
./install.sh
此脚本安装rke2-agent
服务。
- 启用并启动
rke2-agent
该服务。systemctl enable rke2-agent.service
systemctl start rke2-agent.service
- 验证服务的状态
rke2-agent
。systemctl status rke2-agent
● rke2-agent.service - Rancher Kubernetes Engine v2 (agent) Loaded: loaded (/usr/local/lib/systemd/system/rke2-agent.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2023-06-12 17:36:21 UTC; 3min 6s ago
- 下载 RKE2 安装脚本:
- 显示容器的状态。
下面是一个代理节点启动时的输出示例。请记住从服务器节点发出此命令。
kubectl get pods -A -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system cloud-controller-manager-rke2-s1 1/1 Running 0 21m 172.16.0.11 rke2-s1 <none> <none> kube-system etcd-rke2-s1 1/1 Running 0 21m 172.16.0.11 rke2-s1 <none> <none> kube-system helm-install-rke2-coredns-trcjf 0/1 Completed 0 20m 172.16.0.11 rke2-s1 <none> <none> kube-system helm-install-rke2-ingress-nginx-jghfq 0/1 Pending 0 20m <none> <none> <none> <none> kube-system helm-install-rke2-metrics-server-nvcp6 0/1 Pending 0 20m <none> <none> <none> <none> kube-system helm-install-rke2-snapshot-controller-9gbf7 0/1 Pending 0 20m <none> <none> <none> <none> kube-system helm-install-rke2-snapshot-controller-crd-l5wnn 0/1 Pending 0 20m <none> <none> <none> <none> kube-system helm-install-rke2-snapshot-validation-webhook-kqmnp 0/1 Pending 0 20m <none> <none> <none> <none> kube-system kube-apiserver-rke2-s1 1/1 Running 0 21m 172.16.0.11 rke2-s1 <none> <none> kube-system kube-controller-manager-rke2-s1 1/1 Running 0 21m 172.16.0.11 rke2-s1 <none> <none> kube-system kube-proxy-rke2-a1 1/1 Running 0 10m 172.16.0.12 rke2-a1 <none> <none> kube-system kube-proxy-rke2-s1 1/1 Running 0 21m 172.16.0.11 rke2-s1 <none> <none> kube-system kube-scheduler-rke2-s1 1/1 Running 0 21m 172.16.0.11 rke2-s1 <none> <none> kube-system rke2-coredns-rke2-coredns-6b9548f79f-snzl4 0/1 Pending 0 20m <none> <none> <none> <none> kube-system rke2-coredns-rke2-coredns-autoscaler-57647bc7cf-dc2gx 0/1 Pending 0 20m <none> <none> <none> <none>
- 下载并安装 CNI 插件。
- 为 CNI 插件创建以下目录。
mkdir -p /opt/cni/bin
- 下载 CNI 插件。
cd /opt/cni/bin/
wget 'https://github.com/containernetworking/plugins/releases/download/v1.1.1/cni-plugins-linux-amd64-v1.1.1.tgz'
- 解压缩并解压缩 .tgz 文件。
tar -xzvf cni-plugins-linux-amd64-v1.1.1.tgz
- 为 CNI 插件创建以下目录。