SlideShare a Scribd company logo
1 of 16
Download to read offline
Githubを使って簡単に
Helm Repoを公開してみよう
Kubernetes Meetup Tokyo #7
Shingo Omura (@everpeace)
自己紹介
✓ Kubernetes歴 実運用 約1年
✓ ChatWorkの新メッセージングシステムを支える技術
Kubernetes & Concourse CIを使ったDevOps改善
@ AWS Summit Tokyo 2017
✓ kube-aws#645: NVIDIA driver installation support
on GPU instances
everpeace
everpeace
Helm: The package manager for Kubernetes
✓ https://helm.sh/
✓ CNCFによって運営されている(Microsoft, Google, Bitnamiのメンバーが主)
✓ Chartと呼ばれるパッケージにKubernetesの要素をまとめることが出来て
パッケージとして扱える(Service, Deployment, ConfigMap, Secretes, etc.)
✓ Helm Chart は Helm Repoで公開されている
○ 公式レポジトリ ➔ stable / Incubator
✓ 参考: Kubernetes: パッケージマネージャHelm
✓ 今日はhelmの全体のアーキテクチャ, Chartの作り方、使い方の話は割愛します
Helm は複数 Repo に対応しています
Helm Repositoryはどうやって公開する?
● ドキュメント
○ kubernetes/helm/blob/master/docs/chart_repository.md
● 下記を含んだ HTTP/HTTPS エンドポイントならOK
○ index.yaml という名前のインデックスファイル
■ helm repo indexコマンドで生成できる
○ Index.yaml に含まれるパッケージ本体 (.tgz, .tgz.prov)たち
■ 実際には別のurlでホストすることも可能
Helm Repositoryの構造
kubernetes/helm/blob/master/docs/chart_repository.md
⬅ ‘helm package ...’ で生成
⬅ ‘helm package --sign ...’ で生成 (ref: Helm Provenance and Integrity )
⬅ ‘helm repo index ...’ で生成
index.yamlの構造
✓ Chart.yamlに記述された
Metadata
✓ 実際のパッケージのurl
○ helm repo index で指定
……
kubernetes/helm/blob/master/docs/chart_repository.md
helm repo index
コマンドの使い方
● Chartを特定dirにpackageしておいて
○ 手順はQiita参照
● ‘helm repo index DIR --url URL’
を実行
○ DIR = chart群のあるdirectory
○ URL = 公開したいRepo URL
Githubを使って簡単に
Helm Repoを公開してみよう
おさらい
● Helm Repoは単純な http/https エンドポイント
○ index.yaml, Chart群 をフラットに置くだけ
○ それらのファイルは全部 helm コマンドで生成できる
■ ‘helm package --destination DIR’ でchartのtgzを作って
■ ‘helm repo index DIR --url <external url>’ でindex.yamlを生成
つまりいろんな手段で公開できる
● Google Cloud Storage (GCS) bucket
● S3 bucket
● Github Pages
○ gh-pages ブランチを使う
○ master ブランチを使う
○ master ブランチの /docs フォルダを使う (⬅ 今回はこれ)
■ gh-pagesのようにブランチを切り替えなくて済む
■ master ブランチにdocsを作っておいてそこに commit & pushするだけなのでお手軽
master ブランチの /docs フォルダ
をGithub Pages として公開する設定
● RepositoryのSettingページ
で右のように設定するだけ
○ ここに表示されるurlを
‘helm repo index’コマンドで指定する
Github Repositoryの構造
● /docs ディレクトリを作っておく
● 残りはチャート開発用のディレクトリ
● build.sh みたいなのを作ると便利です
https://github.com/everpeace/helm-charts/
後は helm repo add, update で使えます!
How to Secure Helm Repo ?
● 絶賛 Open Issue (opened by mumoshu)
○ helm#1038: feat: Securing a chart repository (AuthN)
● 現状
○ client 証明書認証はサポートされている (version 2.2.0)
■ tiller側(helm init), client側 (helm repo add)
● 今後
○ S3, GCS, Swift みたいな Cloud Storage は Helm Plugin で対応予定だそうです
○ 最近 helm-s3 というpluginが出来たようです!
⎈ Happy Helming! ⎈
Thank you!

More Related Content

What's hot

Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~Miki Shimogai
 
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春VerMasahito Zembutsu
 
Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例gree_tech
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Amazon Web Services Japan
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 
Elasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライドElasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライド崇介 藤井
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル貴志 上坂
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションMasahiko Sawada
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドAkihiro Suda
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)NTT DATA Technology & Innovation
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界Yoshinori Nakanishi
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!Tetsutaro Watanabe
 
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 

What's hot (20)

Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
 
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
 
Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
Elasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライドElasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライド
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 

Similar to Githubを使って簡単に helm repoを公開してみよう

Kuberneteの運用を支えるGitOps
Kuberneteの運用を支えるGitOpsKuberneteの運用を支えるGitOps
Kuberneteの運用を支えるGitOpsshunki fujiwara
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーToru Makabe
 
TUNA-Con#kubeapps.pdf
TUNA-Con#kubeapps.pdfTUNA-Con#kubeapps.pdf
TUNA-Con#kubeapps.pdfssuser41e724
 
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみたKubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみたAkihito Inoh
 
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tkKubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tkwhywaita
 
[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送
[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送
[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送Google Cloud Platform - Japan
 
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例LIFULL Co., Ltd.
 
Infra: Kubernetes and GKE, Network
Infra: Kubernetes and GKE, NetworkInfra: Kubernetes and GKE, Network
Infra: Kubernetes and GKE, NetworkKuma Arakawa
 
Kubernets on Bluemix + DevOpsでコンテナCIやってみた
Kubernets on Bluemix + DevOpsでコンテナCIやってみたKubernets on Bluemix + DevOpsでコンテナCIやってみた
Kubernets on Bluemix + DevOpsでコンテナCIやってみたShoichiro Sakaigawa
 
Azuredevopsakskeda
AzuredevopsakskedaAzuredevopsakskeda
AzuredevopsakskedaTsukasa Kato
 
True Cloud Native Batch Workflow for .NET with MicroBatchFramework
True Cloud Native Batch Workflow for .NET with MicroBatchFrameworkTrue Cloud Native Batch Workflow for .NET with MicroBatchFramework
True Cloud Native Batch Workflow for .NET with MicroBatchFrameworkYoshifumi Kawai
 
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜Masaya Aoyama
 
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55Preferred Networks
 
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとはKoto Shigeru
 
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと  @ gcpug 湘南[External] 2021.12.15 コンテナ移行の前に知っておきたいこと  @ gcpug 湘南
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南Google Cloud Platform - Japan
 
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Kube con + cloudnativecon 2017 社内報告会(外部公開用)Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Kube con + cloudnativecon 2017 社内報告会(外部公開用)Masaya Aoyama
 
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container ClusterオーケストレーションKubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container ClusterオーケストレーションTakashi Kanai
 
Virtual Kubelet and Virtual Node
Virtual Kubelet and Virtual NodeVirtual Kubelet and Virtual Node
Virtual Kubelet and Virtual NodeYoshio Terada
 
普通のRailsアプリをdockerで本番運用する知見
普通のRailsアプリをdockerで本番運用する知見普通のRailsアプリをdockerで本番運用する知見
普通のRailsアプリをdockerで本番運用する知見zaru sakuraba
 

Similar to Githubを使って簡単に helm repoを公開してみよう (20)

Kuberneteの運用を支えるGitOps
Kuberneteの運用を支えるGitOpsKuberneteの運用を支えるGitOps
Kuberneteの運用を支えるGitOps
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
TUNA-Con#kubeapps.pdf
TUNA-Con#kubeapps.pdfTUNA-Con#kubeapps.pdf
TUNA-Con#kubeapps.pdf
 
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみたKubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
 
[GKE & Spanner 勉強会] GKE 入門
[GKE & Spanner 勉強会] GKE 入門[GKE & Spanner 勉強会] GKE 入門
[GKE & Spanner 勉強会] GKE 入門
 
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tkKubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
 
[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送
[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送
[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送
 
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
 
Infra: Kubernetes and GKE, Network
Infra: Kubernetes and GKE, NetworkInfra: Kubernetes and GKE, Network
Infra: Kubernetes and GKE, Network
 
Kubernets on Bluemix + DevOpsでコンテナCIやってみた
Kubernets on Bluemix + DevOpsでコンテナCIやってみたKubernets on Bluemix + DevOpsでコンテナCIやってみた
Kubernets on Bluemix + DevOpsでコンテナCIやってみた
 
Azuredevopsakskeda
AzuredevopsakskedaAzuredevopsakskeda
Azuredevopsakskeda
 
True Cloud Native Batch Workflow for .NET with MicroBatchFramework
True Cloud Native Batch Workflow for .NET with MicroBatchFrameworkTrue Cloud Native Batch Workflow for .NET with MicroBatchFramework
True Cloud Native Batch Workflow for .NET with MicroBatchFramework
 
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
 
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
 
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
 
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと  @ gcpug 湘南[External] 2021.12.15 コンテナ移行の前に知っておきたいこと  @ gcpug 湘南
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
 
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Kube con + cloudnativecon 2017 社内報告会(外部公開用)Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
 
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container ClusterオーケストレーションKubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
 
Virtual Kubelet and Virtual Node
Virtual Kubelet and Virtual NodeVirtual Kubelet and Virtual Node
Virtual Kubelet and Virtual Node
 
普通のRailsアプリをdockerで本番運用する知見
普通のRailsアプリをdockerで本番運用する知見普通のRailsアプリをdockerで本番運用する知見
普通のRailsアプリをdockerで本番運用する知見
 

Githubを使って簡単に helm repoを公開してみよう

  • 2. 自己紹介 ✓ Kubernetes歴 実運用 約1年 ✓ ChatWorkの新メッセージングシステムを支える技術 Kubernetes & Concourse CIを使ったDevOps改善 @ AWS Summit Tokyo 2017 ✓ kube-aws#645: NVIDIA driver installation support on GPU instances everpeace everpeace
  • 3. Helm: The package manager for Kubernetes ✓ https://helm.sh/ ✓ CNCFによって運営されている(Microsoft, Google, Bitnamiのメンバーが主) ✓ Chartと呼ばれるパッケージにKubernetesの要素をまとめることが出来て パッケージとして扱える(Service, Deployment, ConfigMap, Secretes, etc.) ✓ Helm Chart は Helm Repoで公開されている ○ 公式レポジトリ ➔ stable / Incubator ✓ 参考: Kubernetes: パッケージマネージャHelm ✓ 今日はhelmの全体のアーキテクチャ, Chartの作り方、使い方の話は割愛します
  • 4. Helm は複数 Repo に対応しています
  • 5. Helm Repositoryはどうやって公開する? ● ドキュメント ○ kubernetes/helm/blob/master/docs/chart_repository.md ● 下記を含んだ HTTP/HTTPS エンドポイントならOK ○ index.yaml という名前のインデックスファイル ■ helm repo indexコマンドで生成できる ○ Index.yaml に含まれるパッケージ本体 (.tgz, .tgz.prov)たち ■ 実際には別のurlでホストすることも可能
  • 6. Helm Repositoryの構造 kubernetes/helm/blob/master/docs/chart_repository.md ⬅ ‘helm package ...’ で生成 ⬅ ‘helm package --sign ...’ で生成 (ref: Helm Provenance and Integrity ) ⬅ ‘helm repo index ...’ で生成
  • 7. index.yamlの構造 ✓ Chart.yamlに記述された Metadata ✓ 実際のパッケージのurl ○ helm repo index で指定 …… kubernetes/helm/blob/master/docs/chart_repository.md
  • 8. helm repo index コマンドの使い方 ● Chartを特定dirにpackageしておいて ○ 手順はQiita参照 ● ‘helm repo index DIR --url URL’ を実行 ○ DIR = chart群のあるdirectory ○ URL = 公開したいRepo URL
  • 10. おさらい ● Helm Repoは単純な http/https エンドポイント ○ index.yaml, Chart群 をフラットに置くだけ ○ それらのファイルは全部 helm コマンドで生成できる ■ ‘helm package --destination DIR’ でchartのtgzを作って ■ ‘helm repo index DIR --url <external url>’ でindex.yamlを生成
  • 11. つまりいろんな手段で公開できる ● Google Cloud Storage (GCS) bucket ● S3 bucket ● Github Pages ○ gh-pages ブランチを使う ○ master ブランチを使う ○ master ブランチの /docs フォルダを使う (⬅ 今回はこれ) ■ gh-pagesのようにブランチを切り替えなくて済む ■ master ブランチにdocsを作っておいてそこに commit & pushするだけなのでお手軽
  • 12. master ブランチの /docs フォルダ をGithub Pages として公開する設定 ● RepositoryのSettingページ で右のように設定するだけ ○ ここに表示されるurlを ‘helm repo index’コマンドで指定する
  • 13. Github Repositoryの構造 ● /docs ディレクトリを作っておく ● 残りはチャート開発用のディレクトリ ● build.sh みたいなのを作ると便利です https://github.com/everpeace/helm-charts/
  • 14. 後は helm repo add, update で使えます!
  • 15. How to Secure Helm Repo ? ● 絶賛 Open Issue (opened by mumoshu) ○ helm#1038: feat: Securing a chart repository (AuthN) ● 現状 ○ client 証明書認証はサポートされている (version 2.2.0) ■ tiller側(helm init), client側 (helm repo add) ● 今後 ○ S3, GCS, Swift みたいな Cloud Storage は Helm Plugin で対応予定だそうです ○ 最近 helm-s3 というpluginが出来たようです!
  • 16. ⎈ Happy Helming! ⎈ Thank you!