Contents
概要
KubernetesでSystemdを実行可能なCentOSコンテナを実行します。Privilegedモードで実行する必要があります。尚、Privilegedモードはプロダクション環境で全く推奨されませんので、使用する環境は十分に検討して下さい。
手順
Podの作成
Manifestの作成
Manifestを作成します。”privileged: true”により、PrivilegedモードでCentOSコンテナが起動します。
root@k8s-01:~# vim /root/k8s/yaml/centos-pri.yaml
apiVersion: v1
kind: Pod
metadata:
name: centos-pri-pod
spec:
containers:
- name: centos
image: centos
command:
- "/sbin/init"
securityContext:
privileged: true
Manifestの実行
ManifestからPodを作成します。
root@k8s-01:~# kubectl create -f /root/k8s/yaml/centos-pri.yaml
pod/centos-pri-pod created
Podのステータス確認
Podのステータスを確認します。
root@k8s-01:~# kubectl get pod
NAME READY STATUS RESTARTS AGE
centos-pri-pod 1/1 Running 0 16s
コンテナ内のコマンドを実行
Pod(コンテナ)を指定して/bin/bashを起動
execでコンテナ内(Pod内ではありません)のシェルを実行できます。
root@k8s-01:~# kubectl exec -it centos-pri-pod -- /bin/bash [root@centos-pri-pod /]# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
Systemdを確認
下記の通り、CentOSコンテナ内ではSystemdを実行することができます。
[root@centos-pri-pod /]# systemctl status
● centos-pri-pod
State: starting
Jobs: 1 queued
Failed: 0 units
Since: Sun 2021-11-21 16:47:14 UTC; 1min 30s ago
CGroup: /system.slice/containerd.service/kubepods-besteffort-podf5491c07_800c_4ec6_8d75_d57503ab8404.slice:cri-containerd:93811aebda0913dc0e1fd44c70648825014cfd3d0109d3e59918fffa37835afe
├─init.scope
│ └─1 /sbin/init
└─system.slice
├─systemd-journald.service
│ └─31 /usr/lib/systemd/systemd-journald
├─dnf-makecache.service
│ └─42 /usr/libexec/platform-python /usr/bin/dnf makecache --timer
└─dbus.service
└─41 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
Kubernetes Systemdを実行可能なCentOSコンテナ