一、Service简介
利用Deployment来创建一组Pod来提供具有高可用性的服务,每个Pod都会分配一个单独的Pod IP,却存在以下两个问题:
对于访问这个服务带来了难度。kubernetes设计了Service来解决这个问题。
Service可以看作是一组同类Pod对外的访问接口。借助Service,应用可以方便地实现服务发现和负载均衡。
二、Service配置
(1)命令式对象管理
# 创建集群内部可访问的Service
kubectl expose deploy tomcat --name=svc-tomcat1 --type=ClusterIP --port=80 --target-port=8080 -n mk
?
# 查看service
kubectl get svc svc-tomcat1 -n dev -o wide
# 这里产生了一个CLUSTER-IP,这就是service的IP,在Service的生命周期中,这个地址是不会变动的
# 创建集群外部也可访问的Service
# 修改type为NodePort
kubectl expose deploy tomcat --name=svc-tomcat2 --type=NodePort --port=80 --target-port=8080 -n mk
# 删除Service
kubectl delete svc svc-tomcat1 -n mk
(2)命令式对象配置
创建一个svc-tomcat.yaml,内容如下:
apiVersion: v1
kind: Service
metadata:
name: svc-tomcat
namespace: dev
spec:
clusterIP: 172.21.12.34 #固定svc的内网ip
ports:
- port: 80
? protocol: TCP
? targetPort: 8080
selector:
? name: tomcat
type: ClusterIP
然后就可以执行对应的创建和删除命令了:
创建:kubectl create -f svc-tomcat.yaml
删除:kubectl delete -f svc-tomcat.yaml
|