你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍如何在部署过程中将工作器节点隔离到不同的专用子网中。 将辅助角色节点分离到不同的专用子网中,可以满足 Azure Red Hat OpenShif 上部署的各种服务和应用程序的特定访问控制要求。
例如,你可能想要在特定子网内的专用工作器节点上运行特定的入口控制器,同时让用于工作负载(基础设施和其他工作节点)的其余 Kubernetes 节点位于不同的子网内,如下所示:
注释
作为 Azure Red Hat OpenShif 的一部分,主节点和辅助角色节点不能部署在同一专用子网中。
若要将工作器节点隔离到不同的子网中,需要执行两个主要步骤:
部署群集。
创建与这些子网关联的相应子网和计算机组。
部署群集
有关执行此步骤的说明,请参阅创建 Azure Red Hat OpenShift 4 群集。
创建子网和关联的计算机组
部署群集后,需要创建额外的子网作为同一整个虚拟网络的一部分,并为这些子网创建新计算机集。
步骤 1:创建子网
创建子网作为部署的当前虚拟网络的一部分。 确保所有子网都已更新至Microsoft.ContainerRegistry的 。
步骤 2:登录到 jumphost
注释
如果有用于登录到群集的备用方法,则此步骤是可选的。
使用以下命令登录到 jumphost:
oc login $apiServer -u kubeadmin -p <kubeadmin password>
使用 oc get nodes 和 oc get machineSets -n openshift-machine-api 命令验证节点和计算机组的数量,如以下示例所示:
$ oc get nodes
NAME STATUS ROLES AGE VERSION
simon-aro-st5rm-master-0 Ready master 66m v1.19.0+e405995
simon-aro-st5rm-master-1 Ready master 67m v1.19.0+e405995
simon-aro-st5rm-master-2 Ready master 67m v1.19.0+e405995
simon-aro-st5rm-worker-useast1-h6kzn Ready worker 59m v1.19.0+e405995
simon-aro-st5rm-worker-useast2-48zsm Ready worker 59m v1.19.0+e405995
simon-aro-st5rm-worker-useast3-rvzpn Ready worker 59m v1.19.0+e405995
# oc get machineSets --all-namespaces
NAMESPACE NAME DESIRED CURRENT READY AVAILABLE AGE
openshift-machine-api simon-aro-st5rm-worker-useast1 1 1 1 1 69m
openshift-machine-api simon-aro-st5rm-worker-useast2 1 1 1 1 69m
openshift-machine-api simon-aro-st5rm-worker-useast3 1 1 1 1 69m
步骤 3:检索 openshift-machine-api project/namespace 中的计算机组
通过检索计算机组,可以将所有相关参数放入要在下一步中使用的 machineSet 模板中。
oc describe machineSet simon-aro-st5rm-worker-useast1 > aro-worker-az1.yaml
步骤 4:新建 machineSet YAML 文件并将其应用到群集
为 machineSet YAML 文件应用以下模板。 根据上一节中检索的值更改使用 X 显示的参数。 例如,machine.openshift.io/cluster-api-cluster: XXX-XXX-XXX 可能是 machine.openshift.io/cluster-api-cluster: machine-aro-st3mr
==============MachineSet Template====================
apiVersion: machine.openshift.io/v1beta1
kind: MachineSet
metadata:
labels:
machine.openshift.io/cluster-api-cluster: <INFRASTRUCTURE_ID>
machine.openshift.io/cluster-api-machine-role: worker
machine.openshift.io/cluster-api-machine-type: worker
name: XXX-XXX-XXX-XXX-XXX
namespace: openshift-machine-api
spec:
replicas: 1
selector:
matchLabels:
machine.openshift.io/cluster-api-cluster: <INFRASTRUCTURE_ID>
machine.openshift.io/cluster-api-machineset: <INFRASTRUCTURE_ID>-infra-<REGION><ZONE>
template:
metadata:
creationTimestamp: null
labels:
machine.openshift.io/cluster-api-cluster: <INFRASTRUCTURE_ID>
machine.openshift.io/cluster-api-machine-role: worker
machine.openshift.io/cluster-api-machine-type: worker
machine.openshift.io/cluster-api-machineset: <INFRASTRUCTURE_ID>-infra-<REGION><ZONE>
spec:
metadata:
creationTimestamp: null
labels:
node-role.kubernetes.io/<role>: "" #Example: worker,infra
providerSpec:
value:
apiVersion: azureproviderconfig.openshift.io/v1beta1
credentialsSecret:
name: azure-cloud-credentials
namespace: openshift-machine-api
image:
offer: aro4
publisher: azureopenshift
resourceID: ""
sku: <SKU>
version: <VERSION>
kind: AzureMachineProviderSpec
location: <REGION>
metadata:
creationTimestamp: null
natRule: null
networkResourceGroup: <NETWORK_RESOURCE_GROUP>
osDisk:
diskSizeGB: 128
managedDisk:
storageAccountType: Premium_LRS
osType: Linux
publicIP: false
publicLoadBalancer: <LOADBALANCER_NAME>
resourceGroup: <CLUSTER_RESOURCE_GROUP>
subnet: <SUBNET_NAME>
userDataSecret:
name: worker-user-data
vmSize: Standard_D4s_v3
vnet: <VNET_NAME>
zone: <ZONE>
步骤 5:应用计算机组
使用 oc apply -f <filename.yaml> 命令应用在上一节中创建的计算机组,如以下示例所示:
[root@jumphost-new ARO-cluster-Private]# oc apply -f aro-new-worker-az1.yaml
machineset.machine.openshift.io/simon-aro-qpsl5-worker-useast4 created
步骤 6:验证计算机组和节点
应用 YAML 文件后,可以使用 oc get machineSets 和 oc get nodes 命令验证计算机组和节点的创建,如以下示例所示:
[root@jumphost-new ARO-cluster-Private]# oc get machineSet
NAME DESIRED CURRENT READY AVAILABLE AGE
simon-aro-st5rm-worker-useast1 1 1 1 1 142m
simon-aro-st5rm-worker-useast2 1 1 1 1 142m
simon-aro-st5rm-worker-useast3 1 1 1 1 142m
simon-aro-st5rm-worker-useast4 1 1 46s
再过几分钟,系统就会显示新的计算机组和节点:
[root@jumphost-new ARO-cluster-Private]# oc get machineSet
NAME DESIRED CURRENT READY AVAILABLE AGE
simon-aro-st5rm-worker-useast1 1 1 1 1 148m
simon-aro-st5rm-worker-useast2 1 1 1 1 148m
simon-aro-st5rm-worker-useast3 1 1 1 1 148m
simon-aro-st5rm-worker-useast4 1 1 1 1 6m11s
[root@jumphost-new ARO-cluster-Private]# oc get nodes
NAME STATUS ROLES AGE VERSION
simon-aro-st5rm-master-0 Ready master 147m v1.19.0+e405995
simon-aro-st5rm-master-1 Ready master 147m v1.19.0+e405995
simon-aro-st5rm-master-2 Ready master 147m v1.19.0+e405995
simon-aro-st5rm-worker-useast1-h6kzn Ready worker 139m v1.19.0+e405995
simon-aro-st5rm-worker-useast2-48zsm Ready worker 139m v1.19.0+e405995
simon-aro-st5rm-worker-useast3-rvzpn Ready worker 139m v1.19.0+e405995
simon-aro-st5rm-worker-useast4-qrsgx Ready worker 104s v1.19.0+e405995