Org Org Org Org Org Org Org Org

おうち じかん

Org Org Org Org Org Org Org Org

Microk8s イメージ作成

本ページは広告やPRを掲載しています

Microk8s デプロイ用イメージ作成

目次

  1. デプロイ用イメージ作成の流れ

  2. Podmanでイメージ作成

  3. Podmanイメージからtarファイルに保存

  4. tarファイルからmicrok8sイメージに保存

  5. microk8s でPod作成


  1. デプロイ用イメージ作成の流れ

  • Podman build コマンドでイメージを作成

 

  • Podman save コマンドでイメージをtarファイルに保存

 

  • tarファイルをmicrok8s ctr コマンドでイメージ保存

 

この流れで保存すれば、マニュフェストの「imagePullPolicy: Never」でローカルからイメージを展開できます。

では、さっそくイメージ作成から入ります。

 


  1. 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

 


  1. 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


  1. 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

 


  1. 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までの作成となります。

本ページの応用でデプロイの作成も行えるかと思います。

 

広告