Upgrade to Pro — share decks privately, control downloads, hide ads and more …

kind on Podman / kind-on-podman

kind on Podman / kind-on-podman

4924e08c88a442edbffd87b91cb45131?s=128

zaki-lknr

March 09, 2021
Tweet

Transcript

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

    Novice Tokyo #k8snovice 1
  2. 自己紹介 Hiroshi Miyazaki AP Communications Co., Ltd. Twitter: zaki_hmkc Qiita

    / GitHub: zaki-lknr Kubernetes Novice Tokyo #k8snovice 2 趣味から仕事へ→ 仕事から趣味へ→
  3. agenda Kubernetes Novice Tokyo #k8snovice 3 ▹ kind ▹ Podman

    ▸ CentOSとRHEL ▸ Podmanとルートレス
  4. kindとは? ▹ Kubernetes IN Dockerの頭文字から ▹ Docker上にKubernetesをデプロイするツール Kubernetes Novice Tokyo

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

  6. CentOSとRHELとDocker Kubernetes Novice Tokyo #k8snovice 6

  7. 背景 ▹ 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/
  8. RHELの個人向け開発者ライセンス ▹ 元々無料で1台利用 可能だった ▹ 2月以降16台まで利 用可能 Kubernetes Novice Tokyo

    #k8snovice 8 https:/ /twitter.com/moriwaka/status/1352430121425137664
  9. RHELとDocker ▹ RHEL8のリポジトリにDockerは無い ▹ DockerのサイトもRHEL8向けのインストールは案内 していない ▸ 以下はサポート ▪ Fedora

    32/33 ▪ CentOS 7/8 Kubernetes Novice Tokyo #k8snovice 9 ▹ Container Runtime Meetup #3 ▸ CRI-Oの概要と特徴 参照
  10. Podmanとルートレス Kubernetes Novice Tokyo #k8snovice 10

  11. Docker互換のOSSコンテナエンジン ▹ Docker互換 ▹ OCI準拠 ▹ デーモンレス ▹ ルートレス Kubernetes

    Novice Tokyo #k8snovice 11 alias podman=docker でだいたい動作します ▹ Container Runtime Meetup #3 ▸ DockerとPodmanの比較 参考
  12. ルートレス (rootless) でない場合 ▹ 従来のDockerではコンテナ操作にroot権限が必要 ▸ sudoで実行 ▸ dockerグループに追加 Kubernetes

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

    13
  14. ルートレス (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
  15. kindをPodmanで使う Kubernetes Novice Tokyo #k8snovice 15

  16. kindとルートレス ▹ kindでデプロイされるコンテナはroot権限が必要 Kubernetes Novice Tokyo #k8snovice 16 ▹ ルートレス環境の一般

    権限ではエラー ▹ これはPodmanだけで なくルートレス動作の Dockerでも同様
  17. 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
  18. kindのkubeconfig ▹ kind実行ユーザーの~/.kube/configは自動生成 ▹ sudo使用時はrootユーザーに作成される ▸ root以外はsudo kind get kubeconfig

    Kubernetes Novice Tokyo #k8snovice 18
  19. まとめ ▹ Podman自体はルートレスな のでroot権限不要 ▹ ただしkindはroot権限が必要 ▸ kindコマンド実行時はroot 権限(sudo)が必要 ▹

    kubeconfig設定すればクラス タ操作は誰でもOK Kubernetes Novice Tokyo #k8snovice 19