k8s的三层网络

image

  1. 宿主机网络
    物理主机网络(node网络)。
  2. svc集群网络
    clusterIp集群网络,集群内部服务可以相互访问,集群外部不能访问集群内的服务。可以升级为NodePort方式,映射podIp:podPort到宿主机的IP和端口,这样外部用就可以访问pod服务了。
    数据流向:
    外部用户 –> 宿主机的IP和端口 –> svc(nodePort).label –> 通过标签找到pod
  3. pod网络
    podIp:podPort == endpoint

修改 service

命令方式修改 service

以下两种写法都可以修改 service
修改完保存后,就会自动生效

# 修改 kubectl edit service/core-api-service
# 修改 kubectl edit svc/core-api-service

core-api-service.ymal

apiVersion: v1
kind: Service
metadata:
  labels:
    name: core-api-service
  name: core-api-service
spec:
  ports:
    - name: port8081
    # 将Service的端口号映射到每个Node的一个端口号上,
    # 这样集群中的任意Node都可以作为Service的访问入口地址,即NodeIP:NodePort
      nodePort: 31080 #对外暴露的端口
      port: 8081 # svc 集群端口
      protocol: TCP
      targetPort: 8081  # pod端口 容器内的端口
  selector:
    k8s-app: core-api-service
  sessionAffinity: None
  type: NodePort

更新原理参考以下文档

作者:海马  创建时间:2023-07-19 09:36
最后编辑:海马  更新时间:2024-08-03 21:41