2017-03-09 6 views
0

Ich möchte Physical IP übertragen pod von yaml nach Dubbo, aber der Parameter behoben wird value.For Beispiel: dubbo.yamlKubernetes übertragen Physical IP Dubbo

spec: 
    replicas: 2 
    ... 
    env: 
      - name: PhysicalIP 
       value: 192.168.1.1 

In pod vor dubbo beginnen kann ich ip Replay-Container, zum Beispiel:

echo "replay /etc/hosts" 
cp /etc/hosts /etc/hosts.tmp 
sed -i "s/.*$(hostname)/${PhysicalIP} $(hostname)/" /etc/hosts.tmp 
cat /etc/hosts.tmp > /etc/hosts 

Dort ist eine Frage, wenn pod deploy 192.168.1.1 und Host 192.168.1.2 zu hosten, die Schote Umgebungsvariable $ der 192.168.1.2 host {PhysicalIP} Wert ist 192.168 .1.1, Ich möchte $ {PhysicalIP} ist 192.168.1.2 in Host 192.168.1.2, Gibt es eine Möglichkeit?

Antwort

0

Sie sollten Informationen über den Pod über Environment Variables oder unter Verwendung eines DownwardAPIVolumeFile erhalten können.

  • Verwendung von Umgebungsvariablen:

    Sie sollten wie diese zu Ihrem yaml etwas hinzufügen:

    env: 
        - name: MY_NODE_NAME 
        valueFrom: 
         fieldRef: 
         fieldPath: spec.nodeName 
    

Soweit ich weiß, wird der Name des Knotens ist, gerade jetzt , die beste Herangehensweise an das, was Sie brauchen, was Sie aus dem Container herausholen können.

  • Mit einem DownwardAPIVolumeFile:

    Sie sollten wie diese zu Ihrem yaml etwas hinzufügen:

    volumes: 
        - name: podinfo 
        downwardAPI: 
         items: 
         - path: "nodename" 
          fieldRef: 
          fieldPath: spec.nodeName 
    

Auf diese Weise können die Informationen des Knotennamens in/etc gespeichert haben/nodename

Das Problem # 24657 und der Pull # 42717, auf dem Kubernetes Github sind damit verbunden. (Sorry, ich brauche hier mehr Reputation, um mehr Links posten zu können!).

Wie Sie dort sehen können, sollte der Zugriff auf den Knoten IP über die downwardAPI in Kürze verfügbar sein (wahrscheinlich mit status.hostIP).

Verwandte Themen