Antes de instalar OpenShift 4, debe actualizar algunos archivos de configuración de NCP.
git clone https://github.com/vmware/nsx-container-plugin-operator.git
- configmap.yaml: actualice este archivo con la información de NSX-T.
- operator.yaml: especifique la ubicación de la imagen de NCP en este archivo.
- namespace.yaml: especificación del espacio de nombres para el operador. No edite el archivo.
- role_binding.yaml: la especificación de enlace de función del operador. No edite el archivo.
- role.yaml: la especificación de rol para el operador. No edite el archivo.
- service_account.yaml: la especificación de la cuenta de servicio del operador. No edite el archivo.
- lb-secret.yaml: secreto para el certificado de equilibrador de carga de NSX-T predeterminado.
- nsx-secret.yaml: secreto para la autenticación basada en certificados en NSX-T. Se utiliza en lugar de nsx_api_user y nsx_api_password en configmap.yaml.
- operator.nsx.vmware.com_ncpinstalls_crd.yaml: definición de recursos del cliente propiedad del operador.
- operator.nsx.vmware.com_v1_ncpinstall_cr.yaml: recurso de cliente propiedad del operador.
- clúster
- 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}"
Configurar la autenticación basada en certificados para NSX-T mediante la identidad de entidad de seguridad
En un entorno de producción, se recomienda no exponer credenciales de administrador en configmap.yaml con los parámetros nsx_api_user y nsx_api_password. En los siguientes pasos se describe cómo crear una identidad de entidad de seguridad y permitir que NCP use un certificado para la autenticación.
- Genere un certificado y una clave.
- En NSX Manager, vaya a y haga clic en . Agregue una identidad de entidad de seguridad y pegue el certificado generado en el paso 1.
- Agregue los valores de clave y crt con codificación base64 en nsx-secret.yaml.
- Establezca la ubicación de los archivos de certificado y clave en la sección [nsx_v3] de configmap.yaml:
nsx_api_cert_file = /etc/nsx-ujo/nsx-cert/tls.crt nsx_api_private_key_file = /etc/nsx-ujo/nsx-cert/tls.key
Nota: No se admite el cambio del método de autenticación en un clúster que ya está encendida.
(Opcional) Configurar el certificado de equilibrador de carga de NSX-T predeterminado
Un equilibrador de carga de NSX-T puede implementar objetos de ruta HTTPS de OpenShift y descargar la HAProxy de OCP. Para hacer eso se requiere un certificado predeterminado. Siga estos pasos para configurar el certificado predeterminado:
- Agregue los valores de clave y crt con codificación base64 en lb-secret.yaml.
- Establezca la ubicación del certificado y la clave en configmap.yaml en la sección [nsx_v3]:
lb_default_cert_path = /etc/nsx-ujo/lb-cert/tls.crt lb_priv_key_path = /etc/nsx-ujo/lb-cert/tls.key
(Opcional) Configurar la autenticación basada en certificado para instancias de NSX Manager
Si establece insecure como False en ConfigMap, deberá especificar las huellas digitales de los tres administradores en el clúster de NSX Manager. El siguiente procedimiento es un ejemplo de cómo hacerlo.
Copie los certificados de las tres instancias de NSX Manager en un archivo:
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
Edite ConfigMap y agregue las huellas digitales en la sección [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