k8s service deployment yaml配置文件详解

apiVersion: v1
kind: Service #资源类型 service deployment pod statfulset等等
metadata:
  name: eaglenos-gateway-svc
  namespace: default
spec:
  type: ClusterIP #服务类型 ClusterIP 通过集群的内部 IP 暴露服务;  NodePort 通过每个节点上的 IP 和静态端口(NodePort)暴露服务; LoadBalancer 使用云提供商的负载均衡器向外部暴露服务; ExternalName 通过返回 CNAME 记录和对应值,可以将服务映射到 externalName 字段的内容
  selector: #标签选择器
    app: eaglenos-gateway
  ports: # 配置一个名称P8080的对外端口对象,把容器内部80端口映射到8080端口对外服务,走TCP协议
    - name: p8080
      port: 80
      protocol: TCP
      targetPort: 8080
  internalTrafficPolicy: Cluster #内部流量策略,可设置的值有 Cluster 和 Local, 将字段设置为 Cluster 会将内部流量路由到所有就绪端点,设置为 Local 只会路由到当前节点上就绪的端点。 
  sessionAffinity: None
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: eaglenos-gateway
  namespace: default
  labels:
    app: eaglenos-gateway
spec:
  replicas: 1 #.spec.replicas 副本数量,默认值是1。
  selector: #.spec.selector 标签选择算符的必需字段。 .spec.selector 必须匹配 .spec.template.metadata.labels,否则请求会被 API 拒绝。
    matchLabels:
      app: eaglenos-gateway
  strategy: #更新策略
    type: RollingUpdate # 策略类型 .spec.strategy.type 可以是 “Recreate” 或 “RollingUpdate”。“RollingUpdate” 是默认值。
    rollingUpdate: #.spec.strategy 策略指定用于用新 Pod 替换旧 Pod 的策略。 .spec.strategy.type 可以是 “Recreate” 或 “RollingUpdate”。“RollingUpdate” 是默认值。
      maxSurge: 25% #最大峰值
      maxUnavailable: 25% #最大不可用
  template: #容器模板
    metadata:
      labels:
        app: eaglenos-gateway
    spec:
      containers:
        - env:
            - name: JAVA_HOME
              value: /usr/local/openjdk-8
            - name: LANG
              value: C.UTF-8
            - name: PARAMS
              value: >-
                --server.port=8080  --spring.profiles.active=dev
                --spring.application.name=eaglenos-gateway
                --spring.cloud.nacos.discovery.server-addr=mse-be41c0f0-nacos-ans.mse.aliyuncs.com:8848
                --spring.cloud.nacos.discovery.namespace=eg_prod 
                --spring.cloud.nacos.discovery.group=public 
                --spring.cloud.nacos.config.server-addr=mse-be41c0f0-nacos-ans.mse.aliyuncs.com:8848 
                --spring.cloud.nacos.config.namespace=eg_prod
                --spring.cloud.nacos.config.group=public 
                --spring.cloud.nacos.config.shared-configs[0].data-id=application-dev.yml
                --spring.cloud.nacos.config.shared-configs[0].group=public 
                --spring.cloud.nacos.config.shared-configs[0].refresh=true
                --spring.cloud.nacos.config.file-extension=yml
                --spring.cloud.sentinel.transport.dashboard=mse-be41c0f0-nacos-ans.mse.aliyuncs.com:8718
                --spring.cloud.sentinel.datasource.ds1.nacos.server-addr=mse-be41c0f0-nacos-ans.mse.aliyuncs.com:8848
          image: 'harbor.eaglenos.com/eaglenoscloud/eaglenos-gateway:v1.0.3' #容器镜像
          imagePullPolicy: Always #镜像拉去策略
          name: eaglenos-gateway
          ports:
            - containerPort: 80
              name: p8080
              protocol: TCP
          resources: #资源限制,非必填
            requests:
              cpu: 250m
              memory: 512Mi
      dnsPolicy: ClusterFirst #Pod 的 DNS 策略 "Default" "ClusterFirst" "ClusterFirstWithHostNet" "None"
      imagePullSecrets: #拉取镜像的秘钥
        - name: harbor
      restartPolicy: Always #容器策略
      schedulerName: default-scheduler
      securityContext: {}

你可能感兴趣的:(k8s service deployment yaml配置文件详解)