第 2 章 为 OpenShift Container Platform 安装设置环境
执行以下步骤准备 provisioner 节点。
流程
- 
						通过 
ssh登录到 provisioner 节点。 创建非 root 用户(
kni)并为该用户提供sudo权限:useradd kni
# useradd kniCopy to Clipboard Copied! Toggle word wrap Toggle overflow passwd kni
# passwd kniCopy 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/kniCopy to Clipboard Copied! Toggle word wrap Toggle overflow chmod 0440 /etc/sudoers.d/kni
# chmod 0440 /etc/sudoers.d/kniCopy 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 - kniCopy 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-attachCopy 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-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意有关 Red Hat Subscription Manager 的更多信息,请参阅使用命令行工具注册 RHEL 系统。
安装以下软件包:
sudo dnf install -y libvirt qemu-kvm mkisofs python3-devel jq ipmitool
$ sudo dnf install -y libvirt qemu-kvm mkisofs python3-devel jq ipmitoolCopy to Clipboard Copied! Toggle word wrap Toggle overflow 修改用户,将
libvirt组添加到新创建的用户:sudo usermod --append --groups libvirt kni
$ sudo usermod --append --groups libvirt kniCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启动
firewalld:sudo systemctl start firewalld
$ sudo systemctl start firewalldCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启用
firewalld:sudo systemctl enable firewalld
$ sudo systemctl enable firewalldCopy 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 --permanentCopy to Clipboard Copied! Toggle word wrap Toggle overflow sudo firewall-cmd --reload
$ sudo firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启动并启用
libvirtd服务:sudo systemctl enable libvirtd --now
$ sudo systemctl enable libvirtd --nowCopy 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 listCopy 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 listCopy 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 listCopy 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/$PUBLICCIDRCopy 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/$PRIVCIDRCopy 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 showCopy 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.txtCopy 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用户的主目录中。