1. ClusterIP

  1. apiVersion: v1 # 指定api版本,此值必须在kubectl api-versions中
  2. kind: Service # 指定创建资源的角色/类型
  3. metadata: # 资源的元数据/属性
  4. name: demo # 资源的名字,在同一个namespace中必须唯一
  5. namespace: default # 部署在哪个namespace中
  6. labels: # 设定资源的标签
  7. app: demo
  8. spec: # 资源规范字段
  9. type: ClusterIP # ClusterIP 类型
  10. ports:
  11. - port: 8080 # service 端口
  12. targetPort: http # 容器暴露的端口
  13. protocol: TCP # 协议
  14. name: http # 端口名称
  15. selector: # 选择器
  16. app: demo

2. NodePort

apiVersion: v1  # 指定api版本,此值必须在kubectl api-versions中 
kind: Service  # 指定创建资源的角色/类型
metadata:  # 资源的元数据/属性 
  name: demo  # 资源的名字,在同一个namespace中必须唯一
  namespace: default # 部署在哪个namespace中
  labels:  # 设定资源的标签
    name: demo
spec:  # 资源规范字段
  type: NodePort  # NodePort 资源
  ports:
  - port: 8080   # service 端口 
    targetPort: 80  # 容器暴露的端口
    nodePort: 18080 # 暴露端口,可用宿主机IP加该端口访问 Nodeport-->port-->targetPort
  selector:  # 选择器
    app: demo