在这个场景中,您将了解如何使用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