《kubernetes官方文档》用暴露的ip地址去访问集群中的一个应用
本页面展示了如何创建一个Kubernetes服务对象,该服务对象暴露一个外部IP地址
目标
- 运行5个Hello World实例.
- 创建一个公开外部IP地址的服务对象.
- 使用服务对象来访问正在运行的应用程序.
准备工作
- 安装kubectl.
- 使用像Google Kubernetes引擎或Amazon Web Services这样的云服务提供商来创建Kubernetes集群。本教程创建一个外部负载平衡器 external load balancer,它需要一个云提供程序。
- 配置
kubectl
,与您的Kubernetes API服务器进行通信。有关说明,请参阅云提供商的文档.
为运行在5个pod中的应用创建一个服务
- 在集群中运行Hello World应用程序:
kubectl run hello-world --replicas=5 --labels="run=load-balancer-example" --image=gcr.io/google-samples/node-hello:1.0 --port=8080
The preceding command creates a Deployment object and an associated ReplicaSet object. The ReplicaSet has five Pods, each of which runs the Hello World application.
- 显示关于部署的信息:
kubectl get deployments hello-world kubectl describe deployments hello-world
- 显示关于你的副本集对象的信息:
kubectl get replicasets kubectl describe replicasets
- 创建一个公开部署的服务对象:
kubectl expose deployment hello-world --type=LoadBalancer --name=my-service
- 显示关于服务的信息:
kubectl get services my-service
输出类似于:
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE my-service 10.3.245.137 104.198.205.71 8080/TCP 54s
注意:如果外部IP地址显示为<pending>,等待一分钟,然后再次输入相同的命令。
- 显示关于服务的详细信息:
kubectl describe services my-service
输出类似于:
Name: my-service Namespace: default Labels: run=load-balancer-example Annotations: <none> Selector: run=load-balancer-example Type: LoadBalancer IP: 10.3.245.137 LoadBalancer Ingress: 104.198.205.71 Port: <unset> 8080/TCP NodePort: <unset> 32377/TCP Endpoints: 10.0.0.6:8080,10.0.1.6:8080,10.0.1.7:8080 + 2 more... Session Affinity: None Events: <none>
请注意由您的服务暴露的外部IP地址(
LoadBalancer Ingress
)。在这个例子中,外部IP地址是104.198.205.71。还要注意Port
和NodePort
的值。在本例中,Port
是8080,而NodePort是32377 - 在前面的输出中,您可以看到几个服务端点:10.0.0.6:8080 10.0.1.6:8080 10.0.1.7:8080 + 2。这些是运行Hello World应用程序的pods的内部地址。要验证这些是pod地址,输入:
kubectl get pods --output=wide
输出类似于:
NAME ... IP NODE hello-world-2895499144-1jaz9 ... 10.0.1.6 gke-cluster-1-default-pool-e0b8d269-1afc hello-world-2895499144-2e5uh ... 10.0.1.8 gke-cluster-1-default-pool-e0b8d269-1afc hello-world-2895499144-9m4h1 ... 10.0.0.6 gke-cluster-1-default-pool-e0b8d269-5v7a hello-world-2895499144-o4z13 ... 10.0.1.7 gke-cluster-1-default-pool-e0b8d269-1afc hello-world-2895499144-segjf ... 10.0.2.5 gke-cluster-1-default-pool-e0b8d269-cpuc
- 使用外部IP地址(
LoadBalancer Ingress
)来访问Hello World:curl http://<external-ip>:<port>
<external-ip>
是您的服务的外部IP地址(LoadBalancer Ingress
),<port>
是您服务描述中的NodePort的值。如果你使用minikube,输入minikube service my-service
将自动打开在浏览器中打开Hello World。 - 对成功请求的响应是一个hello消息:
Hello Kubernetes!
清理
要删除服务,请输入以下命令:
kubectl delete services my-service
要删除部署、副本集和运行Hello World程序的Pod,请输入以下命令:
kubectl delete deployment hello-world
下一节
了解更多关于 connecting applications with services.
原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《kubernetes官方文档》用暴露的ip地址去访问集群中的一个应用
暂无评论