(2022版)一套教程搞定k8s安装到实战 | Service

视频来源:B站《(2022版)最新、最全、最详细的Kubernetes(K8s)教程,从K8s安装到实战一套搞定》

一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:(2022版)一套教程搞定k8s安装到实战 | 汇总_COCOgsta的博客-CSDN博客


什么是Service?

Service可以简单的理解为逻辑上的一组Pod。一种可以访问Pod的策略,而且其他Pod可以通过这个Service访问到这个Service代理的Pod。相对于Pod而言,它会有一个固定的名称,一旦创建就固定不变。

创建一个Service

nginx-svc.yaml

apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx-svc
  name: nginx-svc
spec:
  ports:
  - name: http # Service端口的名称
    port: 80 # Service自己的端口,servicea --> serviceb http://serviceb,http://serviceb:8080
    protocol: TCP # UDP TCP SCTP default:TCP
    targetPort: 80 # 后端应用的端口
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  type: ClusterIP
复制代码

使用Service代理k8s外部应用

希望在生产环境中使用某个固定的名称而非IP地址进行访问外部的中间件服务

希望Service指向另一个Namespace中或其他集群中的服务(不推荐,建议使用.的形式访问)

某个项目正在迁移至k8s集群,但是一部分服务仍然在集群外部,此时可以使用service代理至k8s集群外部的服务

nginx-svc-external.yaml

apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx-svc-external
  name: nginx-svc-external
spec:
  ports:
  - name: http # Service端口的名称
    port: 80
    protocol: TCP
    targetPort: 80 #后端应用的端口
  sessionAffinity: None
  type: ClusterIP
复制代码

nginx-ep-external.yaml

apiVersion: v1
kind: Endpoints
metadata:
  labels:
    app: nginx-svc-external
  name: nginx-svc-external
  namespace: default
subsets:
- addresses:
  - ip: 39.156.69.79
  ports:
  - name: http
    port: 80
    protocol: TCP
复制代码

使用Service反代域名

nginx-externalName.yaml

apiVersion: v1
kind: Service
meatadata:
  labels:
    app: nginx-externalname
  name: nginx-externalname
spec:
  type: ExternalName
  externalName: www.baidu.com
复制代码

Service类型

ClusterIP:在集群内部使用,也是默认值。

ExternalName:通过返回定义的CNAME别名。

NodePort:在所有安装了kube-proxy的节点上打开一个端口,此端口可以代理至后端Pod,然后集群外部可以使用节点的IP地址和NodePort的端口号访问集群Pod服务。NodePort端口范围默认视30000-32767。

LoadBalance:使用云提供商的负载均衡器公开服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值