[Kubernetes]3. k8s集群Service详解

本文深入解析Kubernetes Service,介绍其解决Pod访问问题的特性,包括通过标签关联Pod、生命周期独立、负载均衡及外部访问方法。详细阐述创建Service的步骤,如新建yaml文件、启动pod、查看服务详情等,并探讨了ClusterIP、NodePort、LoadBalancer和ExternalName四种Service类型。同时,还讨论了如何实现多端口访问。
摘要由CSDN通过智能技术生成

在上一节讲解了k8s 的pod,deployment,以及借助pod,deployment来部署项目,但会存在问题:

  • 每次只能访问一个 pod,没有负载均衡自动转发到不同 pod
  • 访问还需要端口转发
  • Pod重创后IP变了,名字也变了

针对上面的问题,可以借助Service来解决,下面就来看看Service怎么使用

一.Service详解

1.特性

  • Service 通过 label 关联对应的 Pod
  • Servcie 生命周期不跟 Pod 绑定,不会因为 Pod 重新创建改变 IP
  • 提供了负载均衡功能,自动转发流量到不同 Pod
  • 可对集群外部提供访问端口
  • 集群内部可通过服务名字访问

2.创建 Service

Service是通过label关联对应的Pod,下面就来创建Service,首先创建一个deployment.yaml,然后创建service.yaml,通过service.yaml的label标签 goweb 跟对应的deployment.yam中的Pod 关联上

(1).新建deployment.yaml

apiVersion: apps/v1
#类型deploymnt
kind: Deployment
metadata:
  #部署的名字
  name: goweb
spec:
  #创建Pod的副本数
  replicas: 2
  #定义标签选择器:定义Deployment如何找到要管理的Pod,与template的label(标签)对应
  selector:
    matchLabels:
      app: goweb  #需要和下面的labels统一
  #定义 Pod 相关数据
  template:
    metadata:
      labels:
        app: goweb
    #指定该资源的内容
    spec:
      # 定义容器,可以多个
      containers:
        - name: test-goweb# 容器名字
          image: k8sgoimg # 镜像
          # [Always | Never | IfNotPresent] #获取镜像的策略 Alawys表示下载镜像 IfnotPresent表示优先使用本地镜像,否则下载镜像,Nerver表示仅使用本地镜像
          imagePullPolicy: IfNotPresent

 (2).新建service.yaml

创建 一个Service,新建service.yaml通过标签goweb跟对应的Pod关联上

apiVersion: v1
#类型Service
kind: Service
metad
  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值