K8S Learning(8)—— Service

K8S Learning(8)—— Service,第1张

K8S Learning(8)—— Service 一、Service简介

利用Deployment来创建一组Pod来提供具有高可用性的服务,每个Pod都会分配一个单独的Pod IP,却存在以下两个问题:

Pod IP 会随着Pod的重建产生变化

Pod IP 仅仅是集群内可见的虚拟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

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5716071.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-18
下一篇2022-12-18

发表评论

登录后才能评论

评论列表(0条)

    保存