Configurar NetScaler CPX en Kubernetes mediante ConfigMaps
En Kubernetes, puede configurar la instancia de NetScaler CPX mediante ConfigMaps. Con ConfigMaps, puede configurar dinámicamente la instancia de NetScaler CPX durante el inicio de la instancia.
Cree un archivo de configuración cpx.conf
que incluya la configuración específica de NetScaler y los comandos bash shell que quiera ejecutar dinámicamente en la instancia de NetScaler CPX. La estructura del archivo de configuración requiere dos tipos de etiquetas, #NetScaler Commands
y #Shell Commands
. Debajo de la etiqueta #NetScaler Commands
, debe agregar todos los comandos de NetScaler para configurar la configuración específica de NetScaler en la instancia de NetScaler CPX. Debajo de la etiqueta #Shell Commands
, debe agregar los comandos de shell que quiere ejecutar en la instancia de NetScaler CPX.
Importante:
- Las etiquetas se pueden repetir varias veces en el archivo de configuración.
- El archivo de configuración también puede incluir comentarios. Agregue un carácter “#” antes de los comentarios.
- Las etiquetas no distinguen entre mayúsculas y minúsculas.
- Si hay casos de error al implementar el contenedor NetScaler CPX con el archivo de configuración, los errores se registran en el archivo
ns.log
.- Una vez iniciada la instancia de NetScaler CPX, si cambia el ConfigMap, la configuración actualizada se aplica solo cuando se reinicia la instancia de NetScaler CPX.
A continuación se muestra un archivo de configuración de ejemplo:
#NetScaler Commands
add lb vserver v1 http 1.1.1.1 80
add service s1 2.2.2.2 http 80
bind lb vserver v1 s1
#Shell Commands
touch /etc/a.txt
echo "this is a" > /etc/a.txt
#NetScaler Commands
add lb vserver v2 http
#Shell Commands
echo "this is a 1" >> /etc/a.txt
#NetScaler Commands
add lb vserver v3 http
<!--NeedCopy-->
Una vez que haya creado el archivo de configuración, debe crear un ConfigMap a partir del archivo de configuración mediante el comando kubectl create configmap
.
kubectl create configmap cpx-config --from-file=cpx.conf
<!--NeedCopy-->
En el ejemplo anterior, puede crear un ConfigMap, cpx-config
basado en el archivo de configuración cpx.conf. A continuación, puede usar este ConfigMap en el archivo YAML que se utiliza para implementar la instancia de NetScaler CPX.
Puede ver el ConfigMap creado mediante el comando kubectl get configmap
.
root@node1:~/yaml# kubectl get configmap cpx-config -o yaml
Muestra:
apiVersion: v1
data:
cpx.conf: |
#NetScaler Commands
add lb vserver v1 http 1.1.1.1 80
add service s1 2.2.2.2 http 80
bind lb vserver v1 s1
#Shell Commands
touch /etc/a.txt
echo "this is a" > /etc/a.txt
echo "this is the file" >> /etc/a.txt
ls >> /etc/a.txt
#NetScaler Commands
add lb vserver v2 http
#Shell Commands
echo "this is a 1" >> /etc/a.txt
#NetScaler Commands
add lb vserver v3 http
#end of file
kind: ConfigMap
metadata:
creationTimestamp: 2017-12-26T06:26:50Z
name: cpx-config
namespace: default
resourceVersion: "8865149"
selfLink: /api/v1/namespaces/default/configmaps/cpx-config
uid: c1c7cb5b-ea05-11e7-914a-926745c10b02
<!--NeedCopy-->
Puede especificar el ConfigMap creado, cpx-config
en el archivo YAML utilizado para implementar la instancia de NetScaler CPX, como se muestra a continuación:
apiVersion: v1
kind: Pod
metadata:
name: cpx-1
labels:
app: cpx-daemon
annotations:
NETSCALER_AS_APP: "True"
spec:
hostNetwork: true
containers:
- name: cpx
image: "quay.io/citrix/citrix-k8s-cpx-ingress:12.1-51.16"
securityContext:
privileged: true
volumeMounts:
- name: config-volume
mountPath: /cpx/conf
env:
- name: "EULA"
value: "yes"
- name: "NS_NETMODE"
value: "HOST"
- name: "kubernetes_url"
value: "https://10.90.248.101:6443"
- name: "NS_MGMT_SERVER"
value: "10.90.248.99"
- name: "NS_MGMT_FINGER_PRINT"
value: "19:71:A3:36:85:0A:2B:62:24:65:0F:7E:72:CC:DC:AD:B8:BF:53:1E"
- name: "NS_ROUTABLE"
value: "FALSE"
- name: "KUBERNETES_TASK_ID"
valueFrom:
fieldRef:
fieldPath: metadata.name
imagePullPolicy: Never
volumes:
- name: config-volume
configMap:
name: cpx-config
<!--NeedCopy-->
Una vez que se implementa la instancia de NetScaler CPX is e inicia la configuración especificada en ConfigMap, cpx-config
se aplica a la instancia de NetScaler CPX.