使用服务对象访问集群中的应用
这篇文章介绍怎么通过服务对象访问集群中的应用。service 给集群中的应用的两个实例提供了负载均衡的功能。
文章目标
- 运行 Hello World 应用的两个实例
- 创建服务对象暴露节点端口
- 使用服务对象访问应用
开始之前
开始之前需要有一个 Kubernetes
集群,和 kubectl
命令指向你要操作的集群。如果你还没集群,可以参考前面一篇文章安装 Minikube
, 创建本地测试集群。或者可以使用下面这些在线的测试环境。
为运行在两个 pod 里的应用创建服务
下面是一个用来创建应用发布的配置文件。
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-world
spec:
selector:
matchLabels:
run: load-balancer-example
replicas: 2
template:
metadata:
labels:
run: load-balancer-example
spec:
containers:
- name: hello-world
image: gcr.io/google-samples/node-hello:1.0
ports:
- containerPort: 8080
protocol: TCP
通过下面的命令在你的集群中创建应用,如果懒得本地创建这个配置文件,可以直接使用线上连接。
kubectl apply -f ./path/to/your/file/hello-application.yaml
kubectl apply -f https://k8s.io/examples/service/access/hello-application.yaml
上述的命令,创建了一个发布对象,和一个关联的副本集对象。副本集对象用用两个 pod,每个 pod 中运行着一个 hello world 应用实例。
查看一下创建的发布对象
kubectl get deployments hello-world
kubectl describe deployments hello-world
查看一下创建的副本集对象
kubectl get replicasets
kubectl describe replicasets