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

Rancherのプロジェクト機能によるリソース管理/The function of Rancher's project

bells17
November 30, 2021

Rancherのプロジェクト機能によるリソース管理/The function of Rancher's project

RancherJP Online Meetup #03 のLTのセッション資料です。
https://rancherjp.connpass.com/event/229465/

配信URLはこちらになります。
https://youtu.be/FVfVj1bfT3k

bells17

November 30, 2021
Tweet

More Decks by bells17

Other Decks in Programming

Transcript

  1. Rancherのプロジェクト機能による
    リソース管理
    RancherJP Online Meetup #03(2021/11/30)
    @bells17

    View Slide

  2. ▶ @bells17
    ▶ Software Engineer
    ▶ 普段やってること:
    + Kubernetes 関連コンポーネントの開発
    + Kubernetes as a Service開発の調査・研究
    ▶ Kubernetes SIG-Docs Japanese localization reviewer
    ▶ Kubernetes Internal Organizer
    ▶ #kubenews
    ▶ @bells17_

    View Slide

  3. Rancherのプロジェクト機能?

    View Slide

  4. View Slide

  5. View Slide

  6. プロジェクト機能でできること
    ▶ 複数Namespaceのグルーピング
    ▶ プロジェクトにアクセスできるユーザーの管理
    ▶ ユーザーに対するRancherのRole機能によるプロジェクトへの権限の割当
    ▶ Secretのプロジェクトレベルでの管理機能
    ▶ プロジェクトレベルでのResource Quota設定
    ▶ RancherのCI/CD機能との連携
    ▶ Rancherの提供するツールとの連携
    + CI/CD
    + 通知/Alert
    + ロギング
    + モニタリング

    View Slide

  7. ユースケース
    ▶ アプリケーションやマイクロサービスの開発チーム毎にプロジェクトを分割~プロジェク
    ト内部のNamespaceで各アプリケーションなどを管理
    ▶ プロジェクトにアクセスできるユーザーと権限を制限
    ▶ プロジェクトレベルで共通で管理したいSecretをRancherでコントロール
    ▶ CI/CDなどRancherのツールとの連携
    ▶ etc

    View Slide

  8. ⼀⽅で…

    View Slide

  9. マルチテナント管理向けのOSSがいくつかある
    ▶ HNC: https://github.com/kubernetes-sigs/hierarchical-namespaces
    ▶ Accurate: https://github.com/cybozu-go/accurate

    View Slide

  10. HNC
    ▶ Kubernetesコミュニティによって開発
    ▶ Namespaceの階層化管理とリソース伝播機能を提供
    ▶ kubectlプラグインとカスタムリソースによってNamespace/伝播するリソースの管理が可能
    ▶ Rancherのプロジェクト機能との違い
    ▶ Namespaceを多層で階層化することができる
    ▶ 伝播するリソース種別に制限が無い

    View Slide

  11. Accurate
    ▶ サイボウズ社のnecoチームにより開発
    ▶ HNCの機能不⾜などを解決するために開発
    ▶ Namespaceの階層化管理とリソース伝播機能を提供
    ▶ kubectlプラグインとアノテーションによってNamespace/伝播するリソースの管理が可能
    ▶ その他HNCには無い以下のような機能がある
    ▶ Namespaceのテンプレート機能
    ▶ 伝播するリソースのラベル/アノテーションの伝播
    ▶ Rancherのプロジェクト機能との違い
    ▶ Namespaceを多層で階層化することができる
    ▶ 伝播するリソース種別に制限が無い
    ▶ Namespaceのテンプレート機能

    View Slide

  12. 各ツールの⽐較
    3BODIFSϓϩδΣΫτػೳ "DDVSBUF )/$
    ֊૚/BNFTQBDFͷૢ࡞ 3BODIFS6*͔Βૢ࡞ LVCFDUMϓϥάΠϯΛར༻ LVCFDUMϓϥάΠϯΛར༻
    ࢠଙ/BNFTQBDFͷ࡞੒ʹ
    /BNFTQBDFͷ࡞੒ݖݶ͕ඞཁ͔ʁ
    ϓϩδΣΫτͷ࡞੒ݖݶͷΈ ෆཁ ෆཁ ʁະݕূ

    ఻೻͢ΔϦιʔεͷઃఆ 4FDSFUͷΈʁ
    ΦϓτΠϯํࣜ
    ɾ఻೻͍ͨ͠ϦιʔεछผΛ
    DPOpHͰઃఆ
    ɾࢦఆ͍ͨ͠ϦιʔεຖʹΞϊ
    ςʔγϣϯͰࢦఆ
    ΦϓτΞ΢τํࣜ
    ɾ఻೻͍ͨ͠ϦιʔεछผΛ
    $3Ͱઃఆ
    ɾσϑΥϧτͰࢦఆछผͷ
    Ϧιʔε͸શͯ఻೻͞ΕΔ
    ɾ఻೻ͨ͘͠ແ͍Ϧιʔε͸
    ΞϊςʔγϣϯͰࢦఆ
    ࢠଙϦιʔε֎΁ͷ
    Ϧιʔε఻೻ػೳ
    ແ͠
    ςϯϓϨʔτػೳʹΑΔ
    ఻೻͕Մೳ
    ແ͠
    ϥϕϧɾΞϊςʔγϣϯͷ఻೻
    4FDSFUͷ࡞੒Ϧιʔε͸
    ఻೻͞ΕΔ
    $POpHͰࢦఆͨ͠ΩʔͷΈ఻೻ ແ͠ ͩͬͨ͸ͣ

    3BODIFSͷπʔϧͱͷ࿈ܞ ༗Γ ແ͠ ແ͠

    View Slide

  13. RancherにHNC/Accurateを⼊れた⽅が良い場合
    ▶ Namespaceを多層的に階層化したい場合
    ▶ Secret以外のリソースも伝播して管理したい場合
    ▶ テンプレート機能などを使いリソース管理をより効率化したい場合(Accurate)

    View Slide

  14. まとめ
    ▶ Rancherのプロジェクト機能はプロジェクト毎のNamespaceのグループ管理機能や、それ
    に伴うユーザーの権限管理やツールとの連携などが⾏える
    ▶ こういったマルチテナント管理ツールには類似のツールとしてHNC/Accurateなどがある
    ▶ こういったツールとRancherのプロジェクト機能を⽐較するとリソース伝播機能の柔軟度
    がRancherのプロジェクト機能よりも⾼いため、リソース管理の効率化のためのHNC/
    Accurateなどを導⼊するのも良いかもしれないです

    View Slide

  15. 参考資料
    ▶ Project Administration: https://rancher.com/docs/rancher/v2.6/en/project-admin/
    ▶ Pod Security Policies: https://rancher.com/docs/rancher/v2.6/en/project-admin/pod-security-policies/
    ▶ Cluster and Project Roles: https://rancher.com/docs/rancher/v2.6/en/admin-settings/rbac/cluster-project-roles/
    ▶ Project Resource Quotas: https://rancher.com/docs/rancher/v2.6/en/project-admin/resource-quotas/
    ▶ Tools for Logging, Monitoring, and Visibility: https://rancher.com/docs/rancher/v2.6/en/project-admin/tools/
    ▶ Accurate documentation: https://cybozu-go.github.io/accurate/
    ▶ cybozu-go/accurate: https://github.com/cybozu-go/accurate
    ▶ Kubernetesのマルチテナントの現状を整理する: https://techstep.hatenablog.com/entry/2020/09/06/160435
    ▶ Hierarchical Namespace で Namespace を階層構造に管理してオブジェクトを伝搬させる: https://amsy810.hateblo.jp/entry/2019/
    12/01/230822
    ▶ HNC User Guide: https://github.com/kubernetes-sigs/hierarchical-namespaces/tree/v0.9/docs/user-guide
    ▶ KEP-1687: Hierarchical Namespaces As A Subproject: https://github.com/kubernetes/enhancements/blob/master/keps/sig-
    auth/1687-hierarchical-namespaces-subproject/README.md
    ▶ [PUBLIC] The Hierarchical Namespace Controller - Design: https://docs.google.com/document/d/
    10MZfFfbQMm33CBboMq2bfrEtXkJQQT4-UH4DDXZRrKY/edit#

    View Slide

  16. Thanks / Question?
    ▶ @bells17
    ▶ Slide: https://speakerdeck.com/bells17
    ▶ @bells17_

    View Slide