Configurer NetScaler CPX dans Kubernetes à l’aide de ConfigMaps
Dans Kubernetes, vous pouvez configurer l’instance NetScaler CPX à l’aide de ConfigMaps. À l’aide de ConfigMaps, vous pouvez configurer dynamiquement l’instance NetScaler CPX lors du démarrage de l’instance.
Créez un fichier cpx.conf
de configuration qui inclut la configuration spécifique à NetScaler et les commandes bash shell que vous souhaitez exécuter dynamiquement sur l’instance NetScaler CPX. La structure du fichier de configuration nécessite deux types de balises, #NetScaler Commands
et #Shell Commands
. Sous la #NetScaler Commands
balise, vous devez ajouter toutes les commandes NetScaler pour configurer la configuration spécifique à NetScaler sur l’instance NetScaler CPX. Sous la #Shell Commands
balise, vous devez ajouter les commandes shell que vous souhaitez exécuter sur l’instance NetScaler CPX.
Important :
- Les balises peuvent être répétées plusieurs fois dans le fichier de configuration.
- Le fichier de configuration peut également inclure des commentaires. Ajoutez un caractère « # » avant les commentaires.
- Les balises ne sont pas sensibles à la casse.
- S’il existe des scénarios d’échec lors du déploiement du conteneur NetScaler CPX avec le fichier de configuration, les échecs sont enregistrés dans le fichier
ns.log
.- Après le démarrage de l’instance NetScaler CPX, si vous modifiez le ConfigMap, la configuration mise à jour est appliquée uniquement lorsque l’instance NetScaler CPX est redémarrée.
Voici un exemple de fichier de configuration :
#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-->
Une fois que vous avez créé le fichier de configuration, vous devez créer un ConfigMap à partir du fichier de configuration à l’aide de la commande kubectl create configmap
.
kubectl create configmap cpx-config --from-file=cpx.conf
<!--NeedCopy-->
Dans l’exemple ci-dessus, vous pouvez créer un ConfigMap, cpx-config
basé sur le fichier de configuration cpx.conf. Vous pouvez ensuite utiliser ce ConfigMap dans le fichier YAML utilisé pour déployer l’instance NetScaler CPX.
Vous pouvez afficher le ConfigMap créé à l’aide de la commande kubectl get configmap
.
root@node1:~/yaml# kubectl get configmap cpx-config -o yaml
Échantillon :
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-->
Vous pouvez spécifier la ConfigMap créée cpx-config
dans le fichier YAML utilisé pour déployer l’instance NetScaler CPX, comme indiqué ci-dessous :
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-->
Une fois que l’instance NetScaler CPX est déployée et démarre, la configuration spécifiée dans le ConfigMap cpx-config
est appliquée à l’instance NetScaler CPX.