首页 > 解决方案 > Kubectl:在 travis ci 上找不到命令

问题描述

我正在尝试使用 Travis CI 部署 kubernetes 集群,但出现以下错误

编辑:

t 的无效参数“myAcc/imgName:”:无效的参考格式

请参阅 docker build --help

./deploy.sh:第 1 行:kubectl:找不到命令

这是我的 travis 配置文件

travis.yml

sudo: required
services: 
  - docker
env:
  global:
    - SHA-$(git rev-parse HEAD)
    - CLOUDSDK_CORE_DISABLE_PROMPTS=1
before-install:
  - openssl aes-256-cbc -K $encrypted_0c35eebf403c_key -iv $encrypted_0c35eebf403c_iv -in service-account.json.enc -out service-account.json -d
  - curl https://sdk.cloud.google.com | bash > /dev/null
  - source $HOME/google-cloud-sdk/path.bash.inc
  - gcloud components update kubectl
  - gcloud auth activate-service-account --key-file service-account.json
  - gcloud config set project robust-chess-234104
  - gcloud config set compute/zone asia-south1-a
  - gcloud container clusters get-credentials standard-cluster-1
  - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin

deploy:
  provider: script
  script: bash ./deploy.sh
  on: 
    branch: master

这是我的部署脚本

deploy.sh

doccker build -t myAcc/imgName:$SHA
docker push myAcc/imgName:$SHA
kubectl apply -k8s

我猜该gcloud components update kubectl命令不起作用。有任何想法吗?

谢谢 !

标签: dockerkubernetestravis-cigcloud

解决方案


第一个问题invalid argument "myAcc/imgName:" for t: invalid reference format是因为变量$SHA未按预期定义。定义你应该使用的变量=而不是-在 SHA 之后存在语法问题,所以它应该是这样的:

- SHA=$(git rev-parse HEAD)

第二个问题与 kubectl 相关,您需要根据文档使用以下命令安装它:

gcloud components install kubectl

更新

在 Travis-CI 上测试此文件后,我能够找出问题所在。在您的情况下,您应该使用安装之前的步骤,before_install而不是before-install这样。

# travis.yml
---
env:
  global:
    - CLOUDSDK_CORE_DISABLE_PROMPTS=1
before_install:
 - curl https://sdk.cloud.google.com | bash > /dev/null
 - source $HOME/google-cloud-sdk/path.bash.inc
 - gcloud components install kubectl

script: kubectl version

以及构建结果的最后一部分:

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.7", GitCommit:"65ecaf0671341311ce6aea0edab46ee69f65d59e", GitTreeState:"clean", BuildDate:"2019-01-24T19:32:00Z", GoVersion:"go1.10.7", Compiler:"gc", Platform:"linux/amd64"}

推荐阅读