$30 off During Our Annual Pro Sale. View Details »

kind on Podman / kind-on-podman

kind on Podman / kind-on-podman

zaki-lknr

March 09, 2021
Tweet

More Decks by zaki-lknr

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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/

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide