Kubernetes公开应用程序

在这个场景中,您将了解如何使用kubectl暴露命令在集群之外公开Kubernetes应用程序。您还将学习如何使用kubectl Label命令查看标签并将标签应用于对象

要创建一个新的服务并将其公开给外部流量,我们将使用带有nodeport作为参数的expose命令(minikube还不支持loadBalancer选项)。

$ kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port 8080  #创建一个对外公开的服务
service/kubernetes-bootcamp exposed
$ kubectl get services  #一个集群IP、一个内部端口和一个节点端口
NAME                  TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
kubernetes            ClusterIP   10.96.0.1       <none>        443/TCP          4m42s
kubernetes-bootcamp   NodePort    10.97.100.182   <none>        8080:31324/TCP   12s
$ kubectl describe services/kubernetes-bootcamp
Name: kubernetes-bootcamp
Namespace: default
Labels: run=kubernetes-bootcamp
Annotations: <none>
Selector: run=kubernetes-bootcamp
Type: NodePort
IP: 10.97.100.182
Port: <unset> 8080/TCP
TargetPort: 8080/TCP
NodePort: <unset> 31324/TCP
Endpoints: 172.18.0.4:8080
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>

$ export NODE_PORT=$(kubectl get services/kubernetes-bootcamp -o go-template='{{(index .spec.ports 0).nodePort}}')
$ echo NODE_PORT=$NODE_PORT
NODE_PORT=31324
$ curl $(minikube ip):$NODE_PORT
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-6bf84cb898-5mdfp | v=1

  

  

猜你喜欢

转载自www.cnblogs.com/linuxws/p/10663232.html