

お世話になっております。

Kubernetesで管理しているPod内のコンテナで、Systemctlコマンドを使いたいのですが、  
以下のように拒否されてしまいます。

[code]

    # systemctl
    Failed to get D-Bus connection: Operation not permitted
    
[/code]

Dockerコマンドと同様に、--privilegedオプションのようなものをつけて対処することはできないのでしょうか。  
現在はMasterと複数のノードを使用して環境を構築している状態で、ノードにログインして、直接Docokerコマンドを打ち、対象のコンテナに対して--
privilegedオプションをつけた状態で以下のコマンドを実行しましたが、同様のエラーが出てしまいます。

[code]

    sudo docker exec -it --privileged　コンテナ名　/bin/bash
    
    # systemctl
    Failed to get D-Bus connection: Operation not permitted
    
[/code]

やりたいこととしては、  
Deploymentとして作成したCentos内にnginxを入れて、外からServiceにCurlを行い、コンテナを潰すなどして、オートヒーリングなどの機能を試したいのです。  
最初からNginxなどのコンテナを立てればよいのですが、他のコマンド等を使用したいため、CentOS環境にNginxを入れ、確認がしたいのです。

どうか、よろしくお願い致します。


CC BY-SA 4.0
2018-09-01T14:39:16.317
48013
2023-11-16T06:04:50.497
2018-09-02T00:05:58.073
19110
29775
question
docker kubernetes
Kubernetes環境のコンテナ内でSystemctlコマンドを使う方法


お使いのコンテナが systemd を使うようにはセットアップされていないのでしょう。  
`docker.io/centos/systemd` を pull して `/usr/sbin/init` を起動するようにして使うといいと思います。

(参考) <https://hub.docker.com/_/centos/>


CC BY-SA 4.0
2018-09-02T04:44:18.273
48018
2018-09-02T04:44:18.273
4603
48013
answer


>
> Deploymentとして作成したCentos内にnginxを入れて、外からServiceにCurlを行い、コンテナを潰すなどして、オートヒーリングなどの機能を試したいのです。

この場合、kubectl delete podやkubectl proxy svc/your-
serviceをした上で手元でcurlなどを行えば同様のことが実現できるように思いますが、それだとだめでしょうか？


CC BY-SA 4.0
2020-08-16T14:45:31.210
69610
2020-08-16T14:45:31.210
21329
48013
answer