Slide 1

Slide 1 text

kind on Podman Kubernetes Novice Tokyo #9 2021.03.09 @zaki_hmkc Kubernetes Novice Tokyo #k8snovice 1

Slide 2

Slide 2 text

自己紹介 Hiroshi Miyazaki AP Communications Co., Ltd. Twitter: zaki_hmkc Qiita / GitHub: zaki-lknr Kubernetes Novice Tokyo #k8snovice 2 趣味から仕事へ→ 仕事から趣味へ→

Slide 3

Slide 3 text

agenda Kubernetes Novice Tokyo #k8snovice 3 ▹ kind ▹ Podman ▸ CentOSとRHEL ▸ Podmanとルートレス

Slide 4

Slide 4 text

kindとは? ▹ Kubernetes IN Dockerの頭文字から ▹ Docker上にKubernetesをデプロイするツール Kubernetes Novice Tokyo #k8snovice 4

Slide 5

Slide 5 text

Podman ▹ Docker互換のコンテナエンジン ▹ なぜPodmanでkindを使うのか? Kubernetes Novice Tokyo #k8snovice 5

Slide 6

Slide 6 text

CentOSとRHELとDocker Kubernetes Novice Tokyo #k8snovice 6

Slide 7

Slide 7 text

背景 ▹ 2020年12月 CentOS 開 発終了のお知らせ ▹ CentOS Stream として今 後は開発 ▹ 赤帽エンジニアブログ 「Fedora/CentOS Stream/CentOS/RHEL の関係性 」参照 Kubernetes Novice Tokyo #k8snovice 7 https:/ /blog.centos.org/2020/12/future-is-centos-stream/

Slide 8

Slide 8 text

RHELの個人向け開発者ライセンス ▹ 元々無料で1台利用 可能だった ▹ 2月以降16台まで利 用可能 Kubernetes Novice Tokyo #k8snovice 8 https:/ /twitter.com/moriwaka/status/1352430121425137664

Slide 9

Slide 9 text

RHELとDocker ▹ RHEL8のリポジトリにDockerは無い ▹ DockerのサイトもRHEL8向けのインストールは案内 していない ▸ 以下はサポート ■ Fedora 32/33 ■ CentOS 7/8 Kubernetes Novice Tokyo #k8snovice 9 ▹ Container Runtime Meetup #3 ▸ CRI-Oの概要と特徴 参照

Slide 10

Slide 10 text

Podmanとルートレス Kubernetes Novice Tokyo #k8snovice 10

Slide 11

Slide 11 text

Docker互換のOSSコンテナエンジン ▹ Docker互換 ▹ OCI準拠 ▹ デーモンレス ▹ ルートレス Kubernetes Novice Tokyo #k8snovice 11 alias podman=docker でだいたい動作します ▹ Container Runtime Meetup #3 ▸ DockerとPodmanの比較 参考

Slide 12

Slide 12 text

ルートレス (rootless) でない場合 ▹ 従来のDockerではコンテナ操作にroot権限が必要 ▸ sudoで実行 ▸ dockerグループに追加 Kubernetes Novice Tokyo #k8snovice 12

Slide 13

Slide 13 text

ルートレス (rootless) ▹ root権限不要 ▹ プロセスやストレージ領域はユーザーごとに管理 Kubernetes Novice Tokyo #k8snovice 13

Slide 14

Slide 14 text

ルートレス (rootless) ▹ 一般ユーザー権限の動作特有の制限はある ▸ 1024番未満のポートでlistenできない等 ▹ Dockerもrootlessは対応している Kubernetes Novice Tokyo #k8snovice 14 [zaki@rhel8 ~]$ podman run --rm -d -p 1023:80 httpd Error: rootlessport cannot expose privileged port 1023, you can add 'net.ipv4.ip_unprivileged_port_start=1023' to /etc/sysctl.conf (currently 1024), or choose a larger port number (>= 1024): listen tcp 0.0.0.0:1023: bind: permission denied

Slide 15

Slide 15 text

kindをPodmanで使う Kubernetes Novice Tokyo #k8snovice 15

Slide 16

Slide 16 text

kindとルートレス ▹ kindでデプロイされるコンテナはroot権限が必要 Kubernetes Novice Tokyo #k8snovice 16 ▹ ルートレス環境の一般 権限ではエラー ▹ これはPodmanだけで なくルートレス動作の Dockerでも同様

Slide 17

Slide 17 text

kindとPodman or Docker ▹ Podmanインストール時は自動認識 ▹ 環境変数 KIND_EXPERIMENTAL_PROVIDER で明 示的に指定も可能 Kubernetes Novice Tokyo #k8snovice 17 $ sudo kind create cluster $ sudo \ KIND_EXPERIMENTAL_PROVIDER=podman \ kind create cluster

Slide 18

Slide 18 text

kindのkubeconfig ▹ kind実行ユーザーの~/.kube/configは自動生成 ▹ sudo使用時はrootユーザーに作成される ▸ root以外はsudo kind get kubeconfig Kubernetes Novice Tokyo #k8snovice 18

Slide 19

Slide 19 text

まとめ ▹ Podman自体はルートレスな のでroot権限不要 ▹ ただしkindはroot権限が必要 ▸ kindコマンド実行時はroot 権限(sudo)が必要 ▹ kubeconfig設定すればクラス タ操作は誰でもOK Kubernetes Novice Tokyo #k8snovice 19