1つのinit-containerでレプリケーションコントローラを作成しています。しかし、初期化コンテナが起動に失敗し、ポッドの状態:kubernetes initコンテナCrashLoopBackOff
NAME READY STATUS RESTARTS AGE
testcontainer 0/1 CrashLoopBackOff 12 37m
私は正確に失敗しているどの部分かわからない、とログが役立ちません。 マイkubectlサーバのバージョンは1.4(クライアント・バージョンとは異なる)であるので、私は使用しています:
ここannotations:
pod.beta.kubernetes.io/init-containers:
は、私が使用していますレプリケーションコントローラYAMLファイルです。私は両方のコンテナのログをチェックするとき(
Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "nginx" with CrashLoopBackOff: "Back-off 5m0s restarting failed container=nginx pod=testcontainer()"
32m 16s 145 {kubelet x.x.x.x} spec.containers{nginx} Warning BackOff Back-off restarting failed docker container
:私はkubectlからポッドを記述
apiVersion: v1
kind: ReplicationController
metadata:
name: testcontainer
spec:
replicas: 1
selector:
app: nginx
template:
metadata:
labels:
app: nginx
annotations:
pod.beta.kubernetes.io/init-containers: '[
{
"name": "install",
"image": "hello-world"
}
]'
spec:
containers:
- name: nginx
image: hello-world
dnsPolicy: Default
nodeName: x.x.x.x
ログを(より速くそれを作るために代わりにnginxのの)は「hello-world」の画像を使用しています nginxとtestcontainer)、hello-worldイメージを実行した結果が表示されるので、イメージがダウンロードされて正常に開始されたと思います。私はさらにhttps://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-initialization/#creating-a-pod-that-has-an-init-containerで提供されている例を使用して1つのポッドを作成しようとしましたが、まだ失敗します)
ありがとう!
こんにちは svenwltr私は初期化cotainerは(インストール)を実行するだろうと思った、成功した場合アプリケーションコンテナ(nginx)が起動します。 initコンテナが成功した場合、なぜ再起動するのですか? (「常時」の再起動ポリシーは、失敗した場合にのみ適用する必要があります) Iveはこの例も試してみましたが、initコンテナはまだ失敗します。 https://kubernetes.io/docs/tasks/configure-pod-container/configure -pod-initialization /#作成中のポッド-in-init-container 「PodInitializig」が表示されますが、完了することはありません。 – greg
つまり、hello-worldイメージで実行されているレプリケーションコントローラ(ジョブではない)のinitコンテナはどうすればできますか? – greg
あなたのinitコンテナは正常に動作しますが、initコンテナの後に 'nginx'という名前のコンテナが起動します。このコンテナはまた、世界のイメージを使用します。あなたはこのイメージを置き換えます。 – svenwltr