# ---------------------------- # Deployment # ---------------------------- apiVersion: apps/v1 kind: Deployment metadata: name: test-lessie-go-api-deployment namespace: test-lessie labels: app: test-lessie-go-api environment: test project: lessie spec: replicas: 1 selector: matchLabels: app: test-lessie-go-api environment: test project: lessie strategy: type: RollingUpdate # 滚动更新策略 rollingUpdate: maxSurge: 1 # 最大新增副本数 maxUnavailable: 0 # 最大不可用副本数 template: metadata: labels: app: test-lessie-go-api environment: test project: lessie spec: imagePullSecrets: - name: dxin-image-repository # 镜像仓库凭证Secret volumes: - name: go-logs-volume hostPath: path: /data/logs/lessie-go-api/ type: DirectoryOrCreate containers: - name: test-lessie-go-api # 容器名称 image: uswccr.ccs.tencentyun.com/lessietest/go_lessie-sourcing-api:latest # 容器镜像 imagePullPolicy: IfNotPresent # 镜像拉取策略 ,有则不拉 env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: APP_ENV value: "s1" - name: APP_PORT value: "8100" ports: - containerPort: 8100 # 容器暴露的端口 resources: requests: cpu: "100m" # 容器请求分配0.1个CPU核心(这不是实际占用,但调度会以这里进行参考) memory: "1.5Gi" # 容器请求分配1.5Gi内存(这会实际预留) limits: cpu: "1" # 最多可以使用1个CPU核心 memory: "3Gi" # 容器最多可以使用3Gi内存 volumeMounts: - name: go-logs-volume mountPath: /app/logs/ subPathExpr: go-log-$(POD_NAME) --- # ---------------------------- # Service # 集群内部:http://test-lessie-sourcing-api-svc.test-lessie.svc.cluster.local:8100 # 集群外部:http://:30810 # ---------------------------- apiVersion: v1 kind: Service metadata: name: test-lessie-go-api-svc namespace: test-lessie labels: app: test-lessie-go-api environment: test project: lessie spec: type: NodePort selector: # 必须匹配 Deployment 的 labels 才能关联 Pod app: test-lessie-go-api environment: test project: lessie ports: - name: http port: 8100 # ClusterIP 内部端口 targetPort: 8100 # 容器端口 nodePort: 30810 # 节点对外端口(30000-32767)