Upload
shingo-omura
View
1.450
Download
0
Embed Size (px)
Citation preview
自己紹介
✓ 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 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
おさらい
● 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/
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が出来たようです!