介绍说明

• 防止Pod失联
• 定义一组Pod的访问策略
• 支持ClusterIP,NodePort以及LoadBalancer三种类型
• Service的底层实现主要有Iptables和IPVS二种网络模式

Pod与Service的关系

• 通过label-selector相关联
• 通过Service实现Pod的负载均衡( TCP/UDP 4层)

Kubernetes service 使用定义

Service 定义

# 版本
apiVersion: v1
# 资源对象
kind: Service
# 元数据
metadata:
  # 指定service名称
  name: my-service
  # 命名空间
  namespace: default
spec:
  # 分配IP
  clusterIP: 10.0.0.1
  # 指定端口
  ports:
  # 端口名称
  - name: http
    # 指定service端口
    port: 80
    # service使用协议
    protocol: TCP
    # 容器端口,转发后端容器端口
    targetPort: 80
  # 标签选择器,通过标签匹配关联的pod
  selector:
    # 标签
    app: nginx

实例

1、创建service yml文件

apiVersion: v1
kind: Service
metadata:
  name: my-service
  namespace: default
spec:
  clusterIP: 10.0.0.123
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
vim service.yaml

相关文章: