跳到主要内容

K8S 部署

表单介绍

  • Kubectl 版本:Kubectl 版本为当前步骤中使用的 kubectl 客户端版本。请选择与集群适配的 Kubectl 版本,默认版本 v1.16.4。

  • 集群证书:使用集群证书,连接到 Kubernetes 服务集群。

  • 命名空间:Kubernetes 下的命名空间,默认 default。

  • YAML 路径:YAML 路径为需要部署的 YAML 文件在源码中的相对路径。例如:"./manifests.yaml"。

  • 使用 Replace 模式:适用于首次部署应用时使用了 kubectl install 时,kubectl apply 可能无法正确的计算 diff 并更新应用的场景。注意 replace 模式只支持证书导入的 Kubernetes 集群。

  • 跳过 TLS 校验:跳过 TLS 校验,当自定义证书中声明了 insecure-skip-tls-verify 为 true 时需要勾选该配置,以确保 kubectl 跳过校验。

  • 变量:变量为需要动态替换的占位符,变量值支持 {变量 Key} 获取流水线全局变量,在 YAML 中您可以使用占位符如 ${GITEE_DOCKER_IMAGE},并在发布时自动替换。

使用技巧

在 yaml 文件里可以使用$来作为占位符用于替换实际使用过程中所需要动态替换的变量。

例如:spec.template.spec.containers.image 的镜像可以使用变量 GITEE_DOCKER_IMAGE 获取

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: ${GITEE_DOCKER_IMAGE}
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: ngx-service
  labels:
    app: nginx
spec:
  type: NodePort
  selector:
    app: nginx
  ports:
  - port: 80
    targetPort: 80
    nodePort: 32500

常用搭配: