让kubectl在gitlab ci中工作

Tim*_*lbe 6 gitlab-ci kubectl

我正在寻找一种在gitlab中使用kubectl的方法.

到目前为止,我有以下脚本:

deploy_to_dev:
  stage: deploy
  image: docker:dind
  environment:
    name: dev
  script:
    - mkdir -p $HOME/.kube
    - echo $KUBE_CONFIG | base64 -d > $HOME/.kube/config
    - kubectl config view
  only:
    - develop
Run Code Online (Sandbox Code Playgroud)

但它说gitlab不知道kubectl.所以你能指出我正确的方向吗?

jhe*_*dez 9

您正在使用docker:dind没有kubectl二进制文件的图像,您应该使用二进制文件自带图像或在过程中下载它

deploy_to_dev:
  stage: deploy
  image: alpine:3.7
  environment:
    name: dev
  script:
    - apk update  && apk add --no-cache curl
    - curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
    - chmod +x ./kubectl && mv ./kubectl /usr/local/bin/kubectl
    - mkdir -p $HOME/.kube
    - echo -n $KUBE_CONFIG | base64 -d > $HOME/.kube/config
    - kubectl config view
  only:
    - develop
Run Code Online (Sandbox Code Playgroud)

  • 这是我的坏处是 alpine:3.7 或任何有效的标签,alpine 是一个小型 docker linux 镜像(5mb) https://hub.docker.com/_/alpine/ (2认同)
  • 更新了脚本,我试图让您了解如何制作它,我的建议是您使用 kubectl 创建自己的映像。但更新后的脚本现在应该可以工作了 (2认同)

Tob*_*nst 7

使用google/cloud-sdk预装了 gcloud 和 kubectl 的镜像。

build:
  stage: build
  image: google/cloud-sdk
  services:
  - docker:dind
  script:
  # Make gcloud available
  - source /root/.bashrc
Run Code Online (Sandbox Code Playgroud)