Jenkinsを使用してKubernetesで次のfrontend-deployment.yamlをデプロイしようとしていますが、次のエラーが発生しています:
[frontend] Running Shell script
+ kubectl apply -f IKonnekt/frontend-deployment.yaml
error: unable to recognize "IKonnekt/frontend-deployment.yaml": no matches for kind "Deployment" in version "extensions/v1beta1"
Kubernetesクラスタ内のマシンからkubectl apply -f IKonnekt/frontend-deployment.yaml
を実行すると、正常に動作します。
Kubernetes Client Version: 1.12.1
Kubernetes Server Version: 1.11.0
これは私のfrontend-deployment.yamlです:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: ikonnekt-frontend-deployment
spec:
replicas: 1
template:
metadata:
labels:
app: ikonnekt-frontend
spec:
containers:
- name: ikonnekt-frontend
image: ikonnektfrontend
imagePullPolicy: Always
env:
- name: REACT_APP_API
value: "http://IP:Port"
- name: REACT_APP_AUTH_ENDPOINT
value: "http://IP:Port/auth"
ports:
- containerPort: 80
imagePullSecrets:
- name: regcred
私の問題は、JenkinsfileでKubernetes API URLの代わりにKubernetesダッシュボードURLを使用していたため、Jenkinsのkubectlがkubernetesサーバーを認識できなかったためです。
最後に、API URLを使用してapiVersionを更新します。
apiVersionをこれに変更するだけです:apiVersion: apps/v1