我正在嘗試創建一個 cicd 管道 github->travisci->aws eks 一切正常 影像已發布到 dockerhub 和 all.但是當 travis 執行 kubectl apply -f "the files" 時它拋出一個錯誤.. 錯誤:exec插件:無效的 apiVersion “client.authentication.k8s.io/v1alpha1”
(源 coe/部署/服務檔案沒有任何問題,因為我在 aws eks 上手動部署它們并且它們作業正常。)
#-----------------travis.yml-------------
sudo: required
services:
- docker
env:
global:
- SHA=$(git rev-parse HEAD)
before_install:
# Install kubectl
- 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
- sudo mv ./kubectl /usr/local/bin/kubectl
# Install AWS CLI
- if ! [ -x "$(command -v aws)" ]; then curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" ; unzip awscliv2.zip ; sudo ./aws/install ; fi
# export environment variables for AWS CLI (using Travis environment variables)
- export AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
- export AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
- export AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION}
# Setup kubectl config to use the desired AWS EKS cluster
- aws eks update-kubeconfig --region ${AWS_DEFAULT_REGION} --name ${AWS_EKS_CLUSTER_NAME}
- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
- docker build -t akifboi/multi-client -f ./client/Dockerfile.dev ./client
# - aws s3 ls
script:
- docker run -e CI=true akifboi/multi-client npm test
deploy:
provider: script
script: bash ./deploy.sh
on:
branch: master
#----deploy.sh--------
# docker build -t akifboi/multi-client:latest -t akifboi/multi-client:$SHA -f ./client/Dockerfile ./client
# docker build -t akifboi/multi-server:latest -t akifboi/multi-server:$SHA -f ./server/Dockerfile ./server
# docker build -t akifboi/multi-worker:latest -t akifboi/multi-worker:$SHA -f ./worker/Dockerfile ./worker
# docker push akifboi/multi-client:latest
# docker push akifboi/multi-server:latest
# docker push akifboi/multi-worker:latest
# docker push akifboi/multi-client:$SHA
# docker push akifboi/multi-server:$SHA
# docker push akifboi/multi-worker:$SHA
echo "starting"
aws eks --region ap-south-1 describe-cluster --name test001 --query cluster.status #eikhane ashe problem hoitese!
echo "applying k8 files"
kubectl apply -f ./k8s/
# kubectl set image deployments/server-deployment server=akifboi/multi-server:$SHA
# kubectl set image deployments/client-deployment client=akifboi/multi-client:$SHA
# kubectl set image deployments/worker-deployment worker=akifboi/multi-worker:$SHA
echo "done"
#------travis;logs----------
last few lines:
starting
"ACTIVE"
applying k8 files
error: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1"
done
Already up to date.
HEAD detached at c1858f7
Untracked files:
(use "git add <file>..." to include in what will be committed)
aws/
awscliv2.zip
nothing added to commit but untracked files present (use "git add" to track)
Dropped refs/stash@{0} (3b51f951e824689d6c35fc40dadf6fb8881ae225)
Done. Your build exited with 0.
uj5u.com熱心網友回復:
我們在 CI 中安裝了最新版本的 kubectl,今天遇到了這個錯誤。固定到以前的版本(1.18)后,錯誤得到解決。
最后一個作業版本是 1.23.6,我們看到 1.24 出現錯誤
uj5u.com熱心網友回復:
我們今天也遇到了這個問題。每次部署時,我們的 kubectl 都會自動更新,昨天有一個新版本(1.24 版)似乎有問題。我所做的修復是將自動更新更改為設定版本(1.23.5)并解決了問題。
uj5u.com熱心網友回復:
遇到與 Gitlab Runner 和 EKS 相同的問題。在 kubectl 版本 v1.24 中洗掉了對 api 版本 v1beta 的支持。通過使用與 EKS 集群/kube 控制器的 kubernetes 版本匹配的 Kubectl 版本而不是使用最新的 kubectl 版本:
curl -LO https://dl.k8s.io/release/v1.22.0/bin/linux/amd64/kubectl
uj5u.com熱心網友回復:
我確認,它正在使用版本v1.22.0
如果有人在尋找 circleci 解決方案,他們可以嘗試以下代碼
steps:
- checkout
- kubernetes/install-kubectl:
kubectl-version: v1.22.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/470203.html
標籤:亚马逊网络服务 Kubernetes travis-ci 亚马逊-eks cicd
下一篇:這個基本的方案功能有什么問題