NetScaler CPX in Kubernetes mit ConfigMaps konfigurieren
In Kubernetes können Sie die NetScaler CPX-Instanz mit ConfigMaps konfigurieren. Mit ConfigMaps können Sie die NetScaler CPX-Instanz während des Instanzstarts dynamisch konfigurieren.
Erstellen Sie eine cpx.conf Konfigurationsdatei, die NetScaler-spezifische Konfiguration und Bash-Shell-Befehle enthält, die Sie dynamisch auf der NetScaler CPX-Instanz ausführen möchten. Die Struktur der Konfigurationsdatei erfordert zwei Arten von Tags, #NetScaler Commands und #Shell Commands. Unter dem Tag #NetScaler Commands müssen Sie alle NetScaler-Befehle hinzufügen, um die NetScaler-spezifische Konfiguration auf der NetScaler CPX-Instanz zu konfigurieren. Unter dem Tag #Shell Commands müssen Sie die Shell-Befehle hinzufügen, die Sie auf der NetScaler CPX-Instanz ausführen möchten.
Wichtig:
- Die Tags können in der Konfigurationsdatei mehrfach wiederholt werden.
- Die Konfigurationsdatei kann auch Kommentare enthalten. Fügen Sie ein Zeichen „#“ vor Kommentaren hinzu.
- Die Tags sind nicht Groß-/Kleinschreibung-sensitiv.
- Wenn es beim Bereitstellen des NetScaler CPX-Containers mit der Konfigurationsdatei zu Fehlerszenarien kommt, werden die Fehler in der Datei
ns.logprotokolliert.- Nachdem die NetScaler CPX-Instanz gestartet wurde, wird die aktualisierte Konfiguration bei einer Änderung der ConfigMap erst angewendet, wenn die NetScaler CPX-Instanz neu gestartet wird.
Im Folgenden finden Sie eine Beispielkonfigurationsdatei:
#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-->
Nachdem Sie die Konfigurationsdatei erstellt haben, müssen Sie mit dem Befehl kubectl create configmap eine ConfigMap aus der Konfigurationsdatei erstellen.
kubectl create configmap cpx-config --from-file=cpx.conf
<!--NeedCopy-->
Im obigen Beispiel können Sie eine ConfigMap, cpx-config, basierend auf der Konfigurationsdatei cpx.conf erstellen. Sie können diese ConfigMap dann in der YAML-Datei verwenden, die zur Bereitstellung der NetScaler CPX-Instanz verwendet wird.
Sie können die erstellte ConfigMap mit dem Befehl kubectl get configmap anzeigen.
root@node1:~/yaml# kubectl get configmap cpx-config -o yaml
Beispiel:
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-->
Sie können die erstellte ConfigMap, cpx-config, in der YAML-Datei angeben, die zur Bereitstellung der NetScaler CPX-Instanz verwendet wird, wie unten gezeigt:
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-->
Sobald die NetScaler CPX-Instanz bereitgestellt ist und die in der ConfigMap angegebene Konfiguration aktiviert, wird cpx-config auf die NetScaler CPX-Instanz angewendet.