質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%

Q&A

解決済

2回答

2436閲覧

kubenetes マニフェスト内でのcommand実行時のエラーについて

JunMatsumoto

総合スコア76

0グッド

0クリップ

投稿2019/01/30 13:08

編集2019/01/30 15:43

お世話なります。
CentOS7ベースのコンテナイメージを使って、kubenetesでのデプロイ、および起動時のコンテナ設定の自動化をansibleで実行しようと思っております。

CentOS7ベースのDockerFileには、CMD ["/usr/sbin/init"]を 記入しイメージ化しており、
kubenetes内のマニフェストyaml内では、

(中略) containers: - name: app image: asia.gcr.io/xxxxx/app ports: - containerPort: 80 securityContext: privileged: true volumeMounts: - mountPath: "/data" name: local-disk command: ["/bin/sh","/data/init-pod.sh"]

と記載しております。

この状態で、kubectl applyを行う、logを確認しますと、/data/init-pod.shよりkickされたansibleが稼働してしていますが、
systemctl restart php-fpmの箇所で

"msg": "failure 1 during daemon-reload: Failed to get D-Bus connection: Operation not permitted\n"

が発生し、ansibleが失敗しておりました。

マニフェストより、command: ["/bin/sh","/data/init-pod.sh"] を無効化した上でkubectl applyを行い、
その後コンテナにログインして自身でsh /data/init-pod.shを実行した場合は、systemctl restart php-fpmの
箇所も正常に動作する事は確認しています。

こちらの事象の解決方法について、アドバイスを頂けますでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

そもそもコンテナ内でのsystemdを走らせて管理するというのが間違っていました。
他の方法を探します。

投稿2019/02/03 09:25

JunMatsumoto

総合スコア76

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

FROM centos/systemd

を使うのはいかがでしょうか。

投稿2019/01/31 05:55

SugiTK

総合スコア495

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

JunMatsumoto

2019/02/03 09:28

ありがとうございます。 イメージを変えてみましたがダメでした。 インフラ勉強会で聞いたところ、 DockerFileのCMDを、マニフェストのCommandが上書きしていると指摘がありましたので、他の方法を探してみます
SugiTK

2019/02/03 09:50

インフラ勉強会でもお話をお伺いできてわたしも勉強になりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問