第 2 章 为 OpenShift Container Platform 安装设置环境
执行以下步骤准备 provisioner 节点。
流程
-
通过
ssh
登录到 provisioner 节点。 创建非 root 用户(
kni
)并为该用户提供sudo
权限:useradd kni
# useradd kni
Copy to Clipboard Copied! Toggle word wrap Toggle overflow passwd kni
# passwd kni
Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo "kni ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/kni
# echo "kni ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/kni
Copy to Clipboard Copied! Toggle word wrap Toggle overflow chmod 0440 /etc/sudoers.d/kni
# chmod 0440 /etc/sudoers.d/kni
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为新用户创建
ssh
密钥:su - kni -c "ssh-keygen -f /home/kni/.ssh/id_rsa -N ''"
# su - kni -c "ssh-keygen -f /home/kni/.ssh/id_rsa -N ''"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以新用户身份登录到 provisioner 节点:
su - kni
# su - kni
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 Red Hat Subscription Manager 注册 provisioner 节点:
sudo subscription-manager register --username=<user> --password=<pass> --auto-attach
$ sudo subscription-manager register --username=<user> --password=<pass> --auto-attach
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms \ --enable=rhel-8-for-x86_64-baseos-rpms
$ sudo subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms \ --enable=rhel-8-for-x86_64-baseos-rpms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意有关 Red Hat Subscription Manager 的详情,请参考 使用和配置 Red Hat Subscription Manager。
安装以下软件包:
sudo dnf install -y libvirt qemu-kvm mkisofs python3-devel jq ipmitool
$ sudo dnf install -y libvirt qemu-kvm mkisofs python3-devel jq ipmitool
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 修改用户,将
libvirt
组添加到新创建的用户:sudo usermod --append --groups libvirt kni
$ sudo usermod --append --groups libvirt kni
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动
firewalld
:sudo systemctl start firewalld
$ sudo systemctl start firewalld
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用
firewalld
:sudo systemctl enable firewalld
$ sudo systemctl enable firewalld
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动
http
服务:sudo firewall-cmd --zone=public --add-service=http --permanent
$ sudo firewall-cmd --zone=public --add-service=http --permanent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo firewall-cmd --reload
$ sudo firewall-cmd --reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动并启用
libvirtd
服务:sudo systemctl enable libvirtd --now
$ sudo systemctl enable libvirtd --now
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置 provisioner 节点的 ID:
PRVN_HOST_ID=<ID>
$ PRVN_HOST_ID=<ID>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用以下
ibmcloud
命令查看 ID:ibmcloud sl hardware list
$ ibmcloud sl hardware list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置公共子网的 ID:
PUBLICSUBNETID=<ID>
$ PUBLICSUBNETID=<ID>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用以下
ibmcloud
命令查看 ID:ibmcloud sl subnet list
$ ibmcloud sl subnet list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置专用子网的 ID:
PRIVSUBNETID=<ID>
$ PRIVSUBNETID=<ID>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用以下
ibmcloud
命令查看 ID:ibmcloud sl subnet list
$ ibmcloud sl subnet list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置 provisioner 节点公共 IP 地址:
PRVN_PUB_IP=$(ibmcloud sl hardware detail $PRVN_HOST_ID --output JSON | jq .primaryIpAddress -r)
$ PRVN_PUB_IP=$(ibmcloud sl hardware detail $PRVN_HOST_ID --output JSON | jq .primaryIpAddress -r)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为公共网络设置 CIDR:
PUBLICCIDR=$(ibmcloud sl subnet detail $PUBLICSUBNETID --output JSON | jq .cidr)
$ PUBLICCIDR=$(ibmcloud sl subnet detail $PUBLICSUBNETID --output JSON | jq .cidr)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为公共网络设置 IP 地址和 CIDR:
PUB_IP_CIDR=$PRVN_PUB_IP/$PUBLICCIDR
$ PUB_IP_CIDR=$PRVN_PUB_IP/$PUBLICCIDR
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为公共网络设置网关:
PUB_GATEWAY=$(ibmcloud sl subnet detail $PUBLICSUBNETID --output JSON | jq .gateway -r)
$ PUB_GATEWAY=$(ibmcloud sl subnet detail $PUBLICSUBNETID --output JSON | jq .gateway -r)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置 provisioner 节点的专用 IP 地址:
PRVN_PRIV_IP=$(ibmcloud sl hardware detail $PRVN_HOST_ID --output JSON | \ jq .primaryBackendIpAddress -r)
$ PRVN_PRIV_IP=$(ibmcloud sl hardware detail $PRVN_HOST_ID --output JSON | \ jq .primaryBackendIpAddress -r)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为专用网络设置 CIDR:
PRIVCIDR=$(ibmcloud sl subnet detail $PRIVSUBNETID --output JSON | jq .cidr)
$ PRIVCIDR=$(ibmcloud sl subnet detail $PRIVSUBNETID --output JSON | jq .cidr)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置专用网络的 IP 地址和 CIDR:
PRIV_IP_CIDR=$PRVN_PRIV_IP/$PRIVCIDR
$ PRIV_IP_CIDR=$PRVN_PRIV_IP/$PRIVCIDR
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为专用网络设置网关:
PRIV_GATEWAY=$(ibmcloud sl subnet detail $PRIVSUBNETID --output JSON | jq .gateway -r)
$ PRIV_GATEWAY=$(ibmcloud sl subnet detail $PRIVSUBNETID --output JSON | jq .gateway -r)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为
baremetal
设置网桥并置备
网络:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意对于
eth1
和eth2
,根据需要替换相应的接口名称。如果需要,通过 SSH 重新连接到
provisioner
节点:ssh kni@provisioner.<cluster-name>.<domain>
# ssh kni@provisioner.<cluster-name>.<domain>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证连接网桥是否已正确创建:
sudo nmcli con show
$ sudo nmcli con show
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
pull-secret.txt
文件:vim pull-secret.txt
$ vim pull-secret.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Web 浏览器中,导航到 Install on Bare Metal with user-provisioned infrastructure。在第 1 步中,点击 Download pull secret。将内容粘贴到
pull-secret.txt
文件中,并将内容保存到kni
用户的主目录中。