Cronjob を実行すると、CreateContainerConfigError が発生した。
ここでは、エラー原因と対応方法について、記載する。
エラー原因と対応方法
事象
Crontab を作成して、作成した Cronjob を実行すると、Job が作成され、その後、pod 作成時に、CreateContainerConfigError が発生した。
1. マニフェストファイルから Cronjob「sample-cronjob」を作成する。
・コマンド
Kubectl apply -f sample-cronjob.yaml
・マニフェストファイル「sample-cronjob.yaml」
apiVersion: batch/v1 kind: CronJob metadata: name: sample-cronjob spec: ...(省略)... jobTemplate: spec: template: ...(省略)... spec: containers: - name: sample-container env: - name: TEST_NAME valueFrom: configMapKeyRef: name: sample-configmap key: TEST_KEY ...(省略)..
2. Cronjob「sample-cronjob」が作成されたことを確認する。
・コマンド
kubectl get cronjob
3. Cronjob「sample-cronjob」を実行する。
・コマンド
kubectl create job sample-job --from=cronjob/sample-cronjob
※ここで、sample-job は job名、sample-cronjob は cronjob名を指定する。
4. job「sample-job」が作成されたことを確認する。
・コマンド
kubectl get job
5. pob「sample-job-xxx」を確認すると、「STATUS」が「CreateContainerConfigError」になっており、pod 作成時に、「CreateContainerConfigError」 が発生していることが確認できた。
・コマンド
kubectl get pod
・作成された pod
NAME READY STATUS RESTARTS AGE sample-job-xxxx 0/1 CreateContainerConfigError 0 21s
原因
pod の状態を kubectl describe pod コマンドを実行して確認すると、「Events」に、エラーメッセージ「Error: configmap "sample-configmap" not found」が表示されていた。
これは、Cronjob のマニフェストファイル「sample-cronjob.yaml」で参照している「sample-configmap」という名前の ConfigMap を作成しておらず存在していなかったため、エラーが発生していた。
・コマンド
kubectl describe pod sample-job-xxxx
※ここで、sample-job-xxxx は pod名を指定する。
・pod の状態
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning Failed 7s (x3 over 18s) kubelet Error: configmap "sample-configmap" not found
対応方法
作成していたマニフェストファイルから ConfigMap「sample-configmap」を作成していなかったため、kubectl apply コマンドを実行して作成した。
・コマンド
kubectl apply -f sample-configmap.yaml
・マニフェストファイル「sample-configmap.yaml」
apiVersion: v1 kind: ConfigMap metadata: name: sample-configmap ...(省略)..
0 件のコメント :
コメントを投稿