Microk8s イメージ作成
本ページは広告やPRを掲載しています
Microk8s デプロイ用イメージ作成
目次
-
デプロイ用イメージ作成の流れ
-
Podmanでイメージ作成
-
Podmanイメージからtarファイルに保存
-
tarファイルからmicrok8sイメージに保存
-
microk8s でPod作成
-
デプロイ用イメージ作成の流れ
- Podman build コマンドでイメージを作成
- Podman save コマンドでイメージをtarファイルに保存
- tarファイルをmicrok8s ctr コマンドでイメージ保存
この流れで保存すれば、マニュフェストの「imagePullPolicy: Never」でローカルからイメージを展開できます。
では、さっそくイメージ作成から入ります。
-
Podmanでイメージ作成
- Dockerファイルの作成
実行コマンド: vi Dockerfile
以下ファイル内容
FROM centos:8 RUN dnf -y update;
今回はテストですので、中身はこれだけです。
- podman build でイメージ作成
実行コマンド: podman build -t test .
以下実行例
[root@hoge-rhel8-dev00 Test]# podman build -t test . STEP 1: FROM centos:8 STEP 2: RUN dnf -y update; CentOS Linux 8 - AppStream 2.6 MB/s | 9.6 MB 00:03 CentOS Linux 8 - BaseOS 3.2 MB/s | 8.5 MB 00:02 CentOS Linux 8 - Extras 23 kB/s | 10 kB 00:00 Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Upgrading: bash x86_64 4.4.20-1.el8_4 baseos 1.5 M bind-export-libs x86_64 32:9.11.26-4.el8_4 baseos 1.1 M ca-certificates noarch 2021.2.50-80.0.el8_4 baseos 390 k centos-gpg-keys noarch 1:8-3.el8 baseos 12 k centos-linux-repos noarch 8-3.el8 baseos 20 k curl x86_64 7.61.1-18.el8_4.2 baseos 351 k dbus x86_64 1:1.12.8-12.el8_4.2 baseos 41 k dbus-common noarch 1:1.12.8-12.el8_4.2 baseos 46 k dbus-daemon x86_64 1:1.12.8-12.el8_4.2 baseos 240 k dbus-libs x86_64 1:1.12.8-12.el8_4.2 baseos 184 k dbus-tools x86_64 1:1.12.8-12.el8_4.2 baseos 85 k glib2 x86_64 2.56.4-10.el8_4.1 baseos 2.5 M gnutls x86_64 3.6.14-8.el8_3 baseos 1.0 M iptables-libs x86_64 1.8.4-17.el8_4.1 baseos 107 k kexec-tools x86_64 2.0.20-46.el8_4.2 baseos 508 k krb5-libs x86_64 1.18.2-8.3.el8_4 baseos 838 k libcurl-minimal x86_64 7.61.1-18.el8_4.2 baseos 287 k libdb x86_64 5.3.28-42.el8_4 baseos 751 k libdb-utils x86_64 5.3.28-42.el8_4 baseos 150 k libsolv x86_64 0.7.16-3.el8_4 baseos 363 k libxml2 x86_64 2.9.7-9.el8_4.2 baseos 696 k lz4-libs x86_64 1.8.3-3.el8_4 baseos 66 k nettle x86_64 3.4.1-4.el8_3 baseos 301 k openldap x86_64 2.4.46-17.el8_4 baseos 351 k platform-python x86_64 3.6.8-39.el8_4 baseos 84 k python3-libs x86_64 3.6.8-39.el8_4 baseos 7.8 M python3-rpm x86_64 4.14.3-14.el8_4 baseos 158 k rpm x86_64 4.14.3-14.el8_4 baseos 542 k rpm-build-libs x86_64 4.14.3-14.el8_4 baseos 155 k rpm-libs x86_64 4.14.3-14.el8_4 baseos 339 k systemd x86_64 239-45.el8_4.3 baseos 3.6 M systemd-libs x86_64 239-45.el8_4.3 baseos 1.1 M systemd-pam x86_64 239-45.el8_4.3 baseos 469 k systemd-udev x86_64 239-45.el8_4.3 baseos 1.4 M tzdata noarch 2021e-1.el8 baseos 474 k Installing dependencies: kbd-legacy noarch 2.0.4-10.el8 baseos 481 k kbd-misc noarch 2.0.4-10.el8 baseos 1.5 M trousers-lib x86_64 0.3.15-1.el8 baseos 168 k xkeyboard-config noarch 2.28-1.el8 appstream 782 k Installing weak dependencies: diffutils x86_64 3.6-6.el8 baseos 358 k kbd x86_64 2.0.4-10.el8 baseos 390 k libxkbcommon x86_64 0.9.1-1.el8 appstream 116 k platform-python-pip noarch 9.0.3-19.el8 baseos 1.7 M shared-mime-info x86_64 1.9-3.el8 baseos 329 k trousers x86_64 0.3.15-1.el8 baseos 152 k Transaction Summary ================================================================================ Install 10 Packages Upgrade 35 Packages Total download size: 34 M Downloading Packages: (1/45): libxkbcommon-0.9.1-1.el8.x86_64.rpm 1.2 MB/s | 116 kB 00:00 ~・~・~・~・省略・~・~・~・~・ (45/45): tzdata-2021e-1.el8.noarch.rpm 505 kB/s | 474 kB 00:00 -------------------------------------------------------------------------------- Total 3.8 MB/s | 34 MB 00:08 warning: /var/cache/dnf/appstream-02e86d1c976ab532/packages/libxkbcommon-0.9.1-1.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY CentOS Linux 8 - AppStream 1.3 MB/s | 1.6 kB 00:00 Importing GPG key 0x8483C65D: Userid : "CentOS (CentOS Official Signing Key)" Fingerprint: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D From : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial Key imported successfully Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Running scriptlet: bash-4.4.20-1.el8_4.x86_64 1/1 Upgrading : bash-4.4.20-1.el8_4.x86_64 1/80 (1/45): libxkbcommon-0.9.1-1.el8.x86_64.rpm 1.2 MB/s | 116 kB 00:00 ~・~・~・~・省略・~・~・~・~・ Running scriptlet: systemd-udev-239-45.el8_4.3.x86_64 80/80 Verifying : libxkbcommon-0.9.1-1.el8.x86_64 1/80 ~・~・~・~・省略・~・~・~・~・ Verifying : tzdata-2021a-1.el8.noarch 80/80 Upgraded: bash-4.4.20-1.el8_4.x86_64 bind-export-libs-32:9.11.26-4.el8_4.x86_64 ca-certificates-2021.2.50-80.0.el8_4.noarch centos-gpg-keys-1:8-3.el8.noarch centos-linux-repos-8-3.el8.noarch curl-7.61.1-18.el8_4.2.x86_64 dbus-1:1.12.8-12.el8_4.2.x86_64 dbus-common-1:1.12.8-12.el8_4.2.noarch dbus-daemon-1:1.12.8-12.el8_4.2.x86_64 dbus-libs-1:1.12.8-12.el8_4.2.x86_64 dbus-tools-1:1.12.8-12.el8_4.2.x86_64 glib2-2.56.4-10.el8_4.1.x86_64 gnutls-3.6.14-8.el8_3.x86_64 iptables-libs-1.8.4-17.el8_4.1.x86_64 kexec-tools-2.0.20-46.el8_4.2.x86_64 krb5-libs-1.18.2-8.3.el8_4.x86_64 libcurl-minimal-7.61.1-18.el8_4.2.x86_64 libdb-5.3.28-42.el8_4.x86_64 libdb-utils-5.3.28-42.el8_4.x86_64 libsolv-0.7.16-3.el8_4.x86_64 libxml2-2.9.7-9.el8_4.2.x86_64 lz4-libs-1.8.3-3.el8_4.x86_64 nettle-3.4.1-4.el8_3.x86_64 openldap-2.4.46-17.el8_4.x86_64 platform-python-3.6.8-39.el8_4.x86_64 python3-libs-3.6.8-39.el8_4.x86_64 python3-rpm-4.14.3-14.el8_4.x86_64 rpm-4.14.3-14.el8_4.x86_64 rpm-build-libs-4.14.3-14.el8_4.x86_64 rpm-libs-4.14.3-14.el8_4.x86_64 systemd-239-45.el8_4.3.x86_64 systemd-libs-239-45.el8_4.3.x86_64 systemd-pam-239-45.el8_4.3.x86_64 systemd-udev-239-45.el8_4.3.x86_64 tzdata-2021e-1.el8.noarch Installed: diffutils-3.6-6.el8.x86_64 kbd-2.0.4-10.el8.x86_64 kbd-legacy-2.0.4-10.el8.noarch kbd-misc-2.0.4-10.el8.noarch libxkbcommon-0.9.1-1.el8.x86_64 platform-python-pip-9.0.3-19.el8.noarch shared-mime-info-1.9-3.el8.x86_64 trousers-0.3.15-1.el8.x86_64 trousers-lib-0.3.15-1.el8.x86_64 xkeyboard-config-2.28-1.el8.noarch Complete! STEP 3: COMMIT test --> d2bacb64995 Successfully tagged localhost/test:latest d2bacb64995ff383227a96545e38d5a64bc00085e8a7a26f91d806dad427e334
- イメージ確認
実行コマンド:podman image ls | grep test
以下実行例(localhost/test が作成されている)
[root@hoge-rhel8-dev00 Test]# podman image ls | grep test localhost/test latest d2bacb64995f 13 minutes ago 408 MB
-
Podmanイメージからtarファイルに保存
実行コマンド:podman save localhost/test:latest > test.tar
以下実行例
[root@hoge-rhel8-dev00 Test]# podman save localhost/test:latest > test.tar [root@hoge-rhel8-dev00 Test]# ls Dockerfile test.tar
-
tarファイルからmicrok8sイメージに保存
- tar ファイルからmicrok8sイメージへ保存
実行コマンド:microk8s ctr image import test.tar
以下実行例
[root@hoge-rhel8-dev00 Test]# microk8s ctr image import test.tar unpacking localhost/test:latest (sha256:672209b1094b53337b863a97a5e8dfa223c3b4b6c398830f2d1b469bc8b96f8a)...done
- イメージ確認
実行コマンド:microk8s ctr image list | grep test
以下実行例
[root@hoge-rhel8-dev00 Test]# microk8s ctr image list | grep test localhost/test:latest application/vnd.docker.distribution.manifest.v2+json sha256:672209b1094b53337b863a97a5e8dfa223c3b4b6c398830f2d1b469bc8b96f8a 388.7 MiB linux/amd64
-
microk8sでPod作成
- マニュフェストファイルの作成
実行コマンド:vi test.yaml
以下ファイル内容
apiVersion: v1 kind: Pod metadata: name: test namespace: default labels: app: test spec: containers: - name: test image: localhost/test:latest imagePullPolicy: Never command: - "sh" - "-c" args: - | while true do sleep 10 done
- Podの作成
実行コマンド:microk8s kubectl apply -f test.yaml
以下実行例
[root@hoge-rhel8-dev00 Test]# microk8s kubectl apply -f test.yaml pod/test created
- Pod確認
実行コマンド:microk8s kubectl get pod
以下実行例
[root@hoge-rhel8-dev00 Test]# microk8s kubectl get pod NAME READY STATUS RESTARTS AGE test 1/1 Running 0 93s
- 動作確認
実行コマンド:microk8s kubectl exec -it test sh
以下実行例
[root@hoge-rhel8-dev00 Test]# microk8s kubectl exec -it test sh kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead. sh-4.4# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var sh-4.4# exit exit [root@hoge-rhel8-dev00 Test]#
以上Podまでの作成となります。
本ページの応用でデプロイの作成も行えるかと思います。