十二、Kubernetes核心技术Service详解、实例

1、概述

        我们都知道Kubernetes会为每个pod分配一个独立的IP,然而却存在如下问题:

  • Deployment控制的3个pod,其中一个Pod出现问题,这个时候给销毁重新创建后Pod Ip会变化
  • Pod IP 仅仅是集群内可见的虚拟IP,外部无法访问

这样对于访问这个服务带来了难度。因此,kubernetes设计了Service来解决这个问题。

Service可以看作是一组同类Pod对外的访问接口。借助Service,应用可以方便地实现服务发现和负载均衡。

 通过上图可以看出,Service也是通过标签选择器控制一组Pod的对外访问。

2、通过命令创建集群内部可以访问的Service

2.1、ClusterIP方式:

此方式会为Service分配固定IP,在Service整个生命周期内这个IP是不变化的,但是这个IP只能在集群内部访问

#创建deploy
kubectl create deploy mynginx --image=nginx -n dev

#暴露service
kubectl expose deploy mynginx --name=mynginx-service -n dev --port=80 --target-port=80 --type=ClusterIP

#查看service
kubectl get deploy,svc -n dev -owide

实例:

 注意:10.1.203.180这个IP只能在集群内部访问,在集群任意几个节点都可访问,此为--type=ClusterIP 这个类型导致

2.2、NodePort

此方式会为Service分配IP和对外暴露端口,通过此端口可以在外部访问

#创建deploy
kubectl create deploy mynginx --image=nginx -n dev

#暴露service
kubectl expose deploy mynginx --name=mynginx-service -n dev --port=80 --target-port=80 --type=NodePort

#查看service
kubectl get deploy,svc -n dev -owide

 集群内部访问地址:http://10.6.72.235

集群外部访问地址:http://10.6.72.235:32536

3、删除service

涉及命令:

kubectl delete svc mynginx-service -n dev

4、通过yaml暴露service

4.1、生成service的yaml模板mynginx-service.yaml 并修改

#创建模板
kubectl expose deploy mynginx --name=mynginx-service -n dev --port=80 --target-port=80 --type=NodePort -o yaml --dry-run=client > mynginx-service.yaml

yaml内容:

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    app: mynginx
  name: mynginx-service
  namespace: dev
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: mynginx
  type: NodePort
status:
  loadBalancer: {}

4.2、执行mynginx-service.yaml

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈行动派

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值