1、Service简介
在k8s中,每个Pod都有自己的IP地址。当controller用新Pod替代发生故障的Pod时,新Pod就会重新分配一个新的IP地址。这样就产生了一个问题:如果一组Pod对外提供服务(比如 HTTP),它们的IP很有可能发生变化,那么客户端如何自动找到,并访问这个服务呢?k8s给出的解决方案就是Service。
k8s中的Service从逻辑上代表了一组Pod,具体是哪些Pod,则是由label来挑选。Service有自己IP,而且这个IP是不变的。客户端只需要访问Service的IP,k8s只负责建立和维护Service与Pod的映射关系。无论后端Pod的IP如何变化,对客户端都不会有任何影响,因为Service一直没有变。
2、创建Service
先创建一个基于Deployment的yml文件,内容如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: httpservice-deployment
spec:
replicas: 3
selector:
matchLabels:
run: httpdservice
template:
metadata:
labels:
run: httpdservice
spec:
containers:
- name: httpdservice
image: httpd
ports:
- containerPort: 80
然后,执行这个Deployment,执行如下命令:
[root@master service]# kubectl apply -f http-se