Avant d'installer OpenShift 4, vous devez mettre à jour certains fichiers de configuration NCP.
git clone https://github.com/vmware/nsx-container-plugin-operator.git
- configmap.yaml – Mettez à jour ce fichier avec les informations de NSX-T.
- operator.yaml – Spécifiez l'emplacement de l'image NCP dans ce fichier.
- namespace.yaml – Spécification d'espace de noms pour l'opérateur. Ne modifiez pas ce fichier.
- role_binding.yaml - Spécification de liaison de rôle pour l'opérateur. Ne modifiez pas ce fichier.
- role.yaml - Spécification de rôle pour l'opérateur. Ne modifiez pas ce fichier.
- service_account.yaml - La spécification du compte de service pour l'opérateur. Ne modifiez pas ce fichier.
- lb-secret.yaml - Secret pour le certificat d'équilibrage de charge NSX-T par défaut.
- nsx-secret.yaml - Secret pour l'authentification basée sur un certificat pour NSX-T. Il est utilisé à la place de nsx_api_user et de nsx_api_password dans configmap.yaml.
- operator.nsx.vmware.com_ncpinstalls_crd.yaml - Définition de ressource de client appartenant à l'opérateur.
- operator.nsx.vmware.com_v1_ncpinstall_cr.yaml - Ressource de client appartenant à l'opérateur.
- cluster
- nsx_api_managers
- nsx_api_user
- nsx_api_password
- external_ip_pools
- tier0_gateway
- overlay_tz
- edge_cluster
- apiserver_host_ip
- apiserver_host_port
kind: ConfigMap
metadata:
name: nsx-ncp-operator-config
namespace: nsx-system-operator
data:
ncp.ini: |
[vc]
[coe]
# Container orchestrator adaptor to plug in.
adaptor = openshift4
# Specify cluster name.
cluster = ocp
[DEFAULT]
[nsx_v3]
policy_nsxapi = True
# Path to NSX client certificate file. If specified, the nsx_api_user and
# nsx_api_password options will be ignored. Must be specified along with
# nsx_api_private_key_file option
#nsx_api_cert_file = <None>
# Path to NSX client private key file. If specified, the nsx_api_user and
# nsx_api_password options will be ignored. Must be specified along with
# nsx_api_cert_file option
#nsx_api_private_key_file = <None>
nsx_api_managers = 10.114.209.10,10.114.209.11,10.114.209.12
nsx_api_user = admin
nsx_api_password = VMware1!
# Do not use in production
insecure = True
# Choices: ALL DENY <None>
log_firewall_traffic = DENY
external_ip_pools = 10.114.17.0/25
#top_tier_router = <None>
tier0_gateway = t0a
single_tier_topology = True
overlay_tz = 3efa070d-3870-4eb1-91b9-a44416637922
edge_cluster = 3088dc2b-d097-406e-b9de-7a161e8d0e47
[ha]
[k8s]
# Kubernetes API server IP address.
apiserver_host_ip = api-int.ocp.yasen.local
# Kubernetes API server port.
apiserver_host_port = 6443
client_token_file = /var/run/secrets/kubernetes.io/serviceaccount/token
# Choices: <None> allow_cluster allow_namespace
baseline_policy_type = allow_cluster
enable_multus = False
process_oc_network = False
[nsx_kube_proxy]
[nsx_node_agent]
ovs_bridge = br-int
# The OVS uplink OpenFlow port
ovs_uplink_port = ens192
[operator]
# The default certificate for HTTPS load balancing.
# Must be specified along with lb_priv_key option.
# Operator will create lb-secret for NCP based on these two options.
#lb_default_cert = <None>
# The private key for default certificate for HTTPS load balancing.
# Must be specified along with lb_default_cert option.
#lb_priv_key = <None>
kind: Deployment
metadata:
name: nsx-ncp-operator
namespace: nsx-system-operator
spec:
replicas: 1
selector:
matchLabels:
name: nsx-ncp-operator
template:
metadata:
labels:
name: nsx-ncp-operator
spec:
hostNetwork: true
serviceAccountName: nsx-ncp-operator
tolerations:
- effect: NoSchedule
key: node-role.kubernetes.io/master
- effect: NoSchedule
key: node.kubernetes.io/not-ready
containers:
- name: nsx-ncp-operator
# Replace this with the built image name
image: vmware/nsx-container-plugin-operator:latest
command: ["/bin/bash", "-c", "nsx-ncp-operator --zap-time-encoding=iso8601"]
imagePullPolicy: Always
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: OPERATOR_NAME
value: "nsx-ncp-operator"
- name: NCP_IMAGE
value: "{NCP Image}"
Configuration de l'authentification basée sur un certificat pour NSX-T à l'aide de l'identité de principal
Dans un environnement de production, il est recommandé de ne pas exposer les informations d'identification de l'administrateur dans configmap.yaml avec les paramètres nsx_api_user et nsx_api_password. Les étapes suivantes décrivent comment créer une identité de principal et autoriser NCP à utiliser un certificat pour l'authentification.
- Générez un certificat et une clé.
- Dans NSX Manager, accédez à et cliquez sur . Ajoutez une identité de principal et collez le certificat généré à l'étape 1.
- Ajoutez les valeurs crt et key codées en base64 dans nsx-secret.yaml.
- Définissez l'emplacement des fichiers de certificat et de clé dans configmap.yaml sous la section [nsx_v3] :
nsx_api_cert_file = /etc/nsx-ujo/nsx-cert/tls.crt nsx_api_private_key_file = /etc/nsx-ujo/nsx-cert/tls.key
Remarque : la modification de la méthode d'authentification sur un cluster déjà démarré n'est pas prise en charge.
(Facultatif) Configuration du certificat par défaut de l'équilibrage de charge NSX-T
Un équilibrage de charge NSX-T peut implémenter des objets de route OpenShift HTTPS et décharger le HAProxy OCP. Pour cela, un certificat par défaut est requis. Procédez comme suit pour configurer le certificat par défaut :
- Ajoutez les valeurs crt et key codées en base64 dans lb-secret.yaml.
- Définissez l'emplacement des fichiers de certificat et de clé dans configmap.yaml sous la section [nsx_v3] :
lb_default_cert_path = /etc/nsx-ujo/lb-cert/tls.crt lb_priv_key_path = /etc/nsx-ujo/lb-cert/tls.key
(Facultatif) Configuration de l'authentification basée sur un certificat sur des instances de NSX Manager
Si vous définissez insecure = False dans ConfigMap, vous devez spécifier les empreintes numériques des trois gestionnaires dans le cluster NSX Manager. La procédure suivante en est un exemple.
Copiez les certificats des trois instances de NSX Manager dans un fichier :
ssh -l admin 10.114.209.10 -f 'get certificate api' > nsx1.crt
ssh -l admin 10.114.209.11 -f 'get certificate api' > nsx2.crt
ssh -l admin 10.114.209.12 -f 'get certificate api' > nsx3.crt
NSX1=`openssl x509 -in nsx1.crt -fingerprint -noout|awk -F"=" '{print $2}'`
NSX2=`openssl x509 -in nsx2.crt -fingerprint -noout|awk -F"=" '{print $2}'`
NSX3=`openssl x509 -in nsx3.crt -fingerprint -noout|awk -F"=" '{print $2}'`
THUMB="$NSX1,$NSX2,$NSX3"
echo $THUMB
Modifiez ConfigMap et ajoutez les empreintes dans la section [nsx_v3] :
oc edit cm nsx-ncp-operator-config -n nsx-system-operator
nsx_api_managers = 10.114.209.10,10.114.209.11,10.114.209.12
nsx_api_user = admin
nsx_api_password = VMwareVMware1!
insecure = False
thumbprint = E0:A8:D6:06:88:B9:65:7D:FB:F8:14:CF:D5:E5:23:98:C9:43:10:71,A7:B0:26:B5:B2:F6:72:2B:39:86:19:84:E6:DD:AB:43:16:0E:CE:BD,52:9B:99:90:88:4C:9F:9B:83:5E:F7:AF:FC:60:06:50:BE:9E:32:08