Der Befehl kubectl expose
erkunden
Der Befehl kubectl expose
wird verwendet, um einen neuen Kubernetes-Dienst (Service) zu erstellen, um eine vorhandene Ressource wie einen Pod, eine Bereitstellung (Deployment) oder einen Replikationscontroller zugänglich zu machen. Er vereinfacht die Netzwerkkonfiguration, indem er automatisch Dienste basierend auf der angegebenen Ressource erstellt.
Führen Sie den folgenden Befehl aus, um die verfügbaren Optionen für kubectl expose
anzuzeigen:
kubectl expose -h
Sie werden die folgende Ausgabe sehen:
Stellen Sie eine Ressource als neuen Kubernetes-Dienst zur Verfügung.
Sucht nach einer Bereitstellung (Deployment), einem Dienst (Service), einem Replikatsatz (Replica Set), einem Replikationscontroller oder einem Pod anhand des Namens und verwendet den Selektor für diese Ressource als Selektor für einen neuen Dienst am angegebenen Port. Eine Bereitstellung oder ein Replikatsatz wird nur dann als Dienst verfügbar gemacht, wenn sein Selektor in einen Selektor umwandelbar ist, den der Dienst unterstützt, d. h. wenn der Selektor nur die matchLabels-Komponente enthält. Beachten Sie, dass wenn kein Port über --port angegeben wird und die zugänglich gemachte Ressource mehrere Ports hat, alle Ports vom neuen Dienst wiederverwendet werden. Auch wenn keine Labels angegeben werden, wird der neue Dienst die Labels von der Ressource wiederverwenden, die er zugänglich macht.
Mögliche Ressourcen sind (groß- und kleinschreibungsegal):
pod (po), service (svc), replicationcontroller (rc), deployment (deploy), replicaset (rs)
Beispiele:
## Erstellen Sie einen Dienst für ein repliziertes nginx, das am Port 80 dient und mit den Containern am Port 8000 verbindet
kubectl expose rc nginx --port=80 --target-port=8000
## Erstellen Sie einen Dienst für einen Replikationscontroller, der durch Typ und Namen in "nginx-controller.yaml" identifiziert wird,
der am Port 80 dient und mit den Containern am Port 8000 verbindet
kubectl expose -f nginx-controller.yaml --port=80 --target-port=8000
## Erstellen Sie einen Dienst für einen Pod valid-pod, der am Port 444 dient und den Namen "frontend" hat
kubectl expose pod valid-pod --port=444 --name=frontend
## Erstellen Sie einen zweiten Dienst basierend auf dem obigen Dienst, der den Containerport 8443 als Port 443 zugänglich macht und den Namen
"nginx-https" hat
kubectl expose service nginx --port=443 --target-port=8443 --name=nginx-https
## Erstellen Sie einen Dienst für eine replizierte Streaminganwendung am Port 4100, der UDP-Verkehr ausgleicht und 'video-stream' heißt.
kubectl expose rc streamer --port=4100 --protocol=UDP --name=video-stream
## Erstellen Sie einen Dienst für ein repliziertes nginx unter Verwendung eines Replikatsatzes, der am Port 80 dient und mit den Containern am
Port 8000 verbindet
kubectl expose rs nginx --port=80 --target-port=8000
## Erstellen Sie einen Dienst für eine nginx-Bereitstellung, die am Port 80 dient und mit den Containern am Port 8000 verbindet
kubectl expose deployment nginx --port=80 --target-port=8000