Kubernetes gitlab ci和kubectl问题

Kubernetes gitlab ci和kubectl问题,kubernetes,gitlab,Kubernetes,Gitlab,我正在尝试使用gitlab ci/cd和kubernates集群构建和部署nodejs应用程序。部署失败时,生成成功通过。同时,我将Kubernates集群添加到gitlab(API url、CA证书和服务令牌),由于与KUBECONFIG相关的问题,我在部署中运行kubectl时遇到了错误,下面是我正在使用的gitlab-ci.yml stages: - build - deploy services: - docker:dind

我正在尝试使用gitlab ci/cd和kubernates集群构建和部署nodejs应用程序。部署失败时,生成成功通过。同时,我将Kubernates集群添加到gitlab(API url、CA证书和服务令牌),由于与KUBECONFIG相关的问题,我在部署中运行kubectl时遇到了错误,下面是我正在使用的gitlab-ci.yml

    stages:
      - build
      - deploy

    services:
      - docker:dind


    build_app:  
      stage: build
      image: docker:git
      only:
        - master
        - develop

      script:
        - docker login -u gitlab-ci-token -p ${CI_BUILD_TOKEN} ${CI_REGISTRY}
        - docker build -t ${CI_REGISTRY}/${CI_PROJECT_PATH} . 
        - docker tag ${CI_REGISTRY}/${CI_PROJECT_PATH} ${CI_REGISTRY}/${CI_PROJECT_PATH}:${CI_COMMIT_SHORT_SHA}
        - docker push ${CI_REGISTRY}/${CI_PROJECT_PATH}:${CI_COMMIT_SHORT_SHA}

    variables:
      DOCKER_HOST: tcp://docker:2375/
    deploy:
      stage: deploy
      image:
        name: bitnami/kubectl:latest
        entrypoint: [""]

      script:
        - USER_TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
        - CERTIFICATE_AUTHORITY_DATA=$(cat /var/run/secrets/kubernetes.io/serviceaccount/ca.crt | base64 -i -w0 -)
        - kubectl config set-cluster k8s --server="https://kubernetes.default.svc"
        - kubectl config set clusters.k8s.certificate-authority-data ${CERTIFICATE_AUTHORITY_DATA}
        - kubectl config set-credentials gitlab --token="${USER_TOKEN}"
        - kubectl config set-context default --cluster=k8s --user=gitlab
        - kubectl config use-context default
        - kubectl set image deployment test-flight web=${CI_REGISTRY}/${CI_PROJECT_PATH}:${CI_COMMIT_SHORT_SHA} -n test-flight-dev
$USER\u TOKEN=$(cat/var/run/secrets/kubernetes.io/servicecomport/TOKEN) cat:/var/run/secrets/kubernetes.io/servicecomport/token:没有这样的文件或目录


更新:创建环境并将其附加到阶段解决了识别部署将是哪个群集的问题,因此群集可以获得应用命令的操作创建环境并将其附加到阶段解决了识别部署将是哪个群集的问题,因此,集群可以获得应用命令环境的操作:
名称:生产

创建环境并将其连接到阶段解决了识别部署将位于哪个集群的问题,因此集群可以获得应用命令环境的操作:
名称:production

嗨,米纳法鲁克,欢迎来到SO。将kubernetes集群添加到GitLab的全部目的是从repo的
.GitLab ci.yml
中配置集群连接;您必须选择一个或另一个——要么作业管理k8s连接,要么gitlab为作业配置它,
脚本:
运行时,
KUBECONFIG
已经指向gitlab创建的合法文件。那么,到底是哪一个:您想配置它,还是想让gitlab为您配置它?与此相关,您正在尝试访问Pod的注入ServiceAccountToken,但除非您单独配置了
gitlab runner
在clusterHi中运行,否则阶段本身不会在Pod中运行,您运行群集的群集基础结构是什么?您有什么k8s版本?@mdaniel如果我只使用gitlab配置,并且只使用脚本来推送生成的映像kubectl set image deployment test flight…等等,我会得到错误:缺少或不完整的配置信息。请指向现有的完整配置文件:1。通过命令行标志——kubeconfig 2。通过KUBECONFIG环境变量3。在您的主目录中作为~/.kube/config@PiotrMalecDigitalOcean Kubernates集群,版本为v1.13.4Hi minafarouk,欢迎使用SO。将kubernetes集群添加到GitLab的全部目的是从repo的
.GitLab ci.yml
中配置集群连接;您必须选择一个或另一个——要么作业管理k8s连接,要么gitlab为作业配置它,
脚本:
运行时,
KUBECONFIG
已经指向gitlab创建的合法文件。那么,到底是哪一个:您想配置它,还是想让gitlab为您配置它?与此相关,您正在尝试访问Pod的注入ServiceAccountToken,但除非您单独配置了
gitlab runner
在clusterHi中运行,否则阶段本身不会在Pod中运行,您运行群集的群集基础结构是什么?您有什么k8s版本?@mdaniel如果我只使用gitlab配置,并且只使用脚本来推送生成的映像kubectl set image deployment test flight…等等,我会得到错误:缺少或不完整的配置信息。请指向现有的完整配置文件:1。通过命令行标志——kubeconfig 2。通过KUBECONFIG环境变量3。在您的主目录中作为~/.kube/config@PiotrMalecDigitalOcean Kubernates群集,版本为v1.13.4