SlideShare une entreprise Scribd logo
1  sur  13
Rancher Charts
Introduction
株式会社スタイルズ
矢野 哲朗
2018年11月17日
自己紹介
経歴 : システム運用 10年・ネットワーク 6年・SI 8年
近頃はownCloud 営業、翻訳を担当
Rancherの好きな機能 :
その他 : 全く上達しないRubyist
一番最初のPCは、OKI if-800 でした…。
矢野 哲朗
tetsurow.yano
株式会社スタイルズ
1
Rancher 2.0におけるカタログ
2
Rancher 1.6にはカタログというのがありました。1ボタンで必要なアプリ
ケーションがデプロイできるというとっても便利な機能でした。しかし、そ
れは、docker-compose.ymlを利用してるものでした。
Rancher 2.0 ではオーケストレーションがKubernetesベースになりました。
当然、docker-compose.ymlが使えなくなりました。
Kubernetesでのパッケージマネージャーはまだ混沌としている状態です
が、Rancher 2.0ではHelm Chartsというものを使うようになりました。
カスタムカタログとCharts
3
Helm Charts
Helm Chartsとは、アプリケーションを実行する為の様々なアプリケーションを含ん
だパッケージです。
元々のHelm Chartsでは、キーと値をペアのセットのパラメーターを理解し、それを
Answers としてセットしてデプロイする必要があります。
Helm 安定版とHelm インキュベーターでは、元々のHelm Chartがそのまま表示さ
れます。
カスタムカタログでHelm Charts(Rancher形式でない)を利用することもできます(も
ちろん、Rancher Chartsの利用を推奨します)。
Rancher Charts
Rancher Chartsは、元々のHelm Chartsをコピーしたものですが、利便性をよくす
るため app-readme.md と questions.yaml という2つのファイルを追加しています。
それぞれについて詳しくは、Rancher Charts 追加ファイルを参照してください。
https://rancher.com/docs/rancher/v2.x/en/catalog/custom
Rancher Chartsのメリット
4
リビジョンの追跡を拡張
Helmでは、バージョンごとのデプロイには対応していますが、Racher ではチ
ャート間のバージョンの違いを表示するためのトラッキングと改訂履歴を追加
しました。
アプリケーション起動の利便性向上
Rancher Chartsは、チャートの詳細と設定フォームを追加して、カタログアプリ
を簡単にデプロイできるようにしています。Rancher のユーザーは、Helm 変
数リストを全て確認して、アプリケーションの起動方法を考える必要はありま
せん。
アプリケーションリソース管理
Rancherは、アプリケーションの利用リソース状況を追跡します。アプリケーシ
ョンを動かす為のオブジェクトがリストアップされたページで簡単に確認するこ
とができ、トラブルシューティングすることもできます。
5
Rancher Catalog
Rancher向けのファイル(元々のHelm Chartにはない)
app-readme.md question.yml
チャートのUIヘッダーに説明的なテキストを提供するファイル。
(以下の画像は、Rancherチャートとネイティブヘルムチャートの
違い)
チャートの展開を簡素化するためのフォームの質問を含むファイ
ル。
これがなければ、Key−Valueを使用して配置を構成する必要があ
る。
6
Rancher Catalog
Chartの構造
Rancher
Chart
Description
app-readme.md ○ Rancher 2.0 UIで表示するためのReadmeファイル
charts/ Chartの依存関係を含めるディレクトリ
Chart.yaml Helm Chartの情報ファイル
question.yml ○ Rancher 2.0 UIに関する質問を含むファイル
templates/ values.ymlと組み合わせ、コンテナを生成するテンプレートYAMLの配
置
requirements.yml チャートの依存関係をリストするファイル
README.md Helm Readmeファイル。[詳細説明]に表示される。
values.yaml チャートのデフォルトの設定値
Helm Chart
Repository charts/<application name>/<app version>/
(例: charts/wordpress/v0.1/)
7
Helm Charts の question.yml(1)
変数種別 値タイプ 必須 詳細
variable string true
values.yml ファイルで指定した変数名を定義する。ネストしたデータには、foo.bar のよ
うに利用する。
label string true
変数のUI上のラベル名を指定する。
description string false
変数の説明を記載する。
type string false
変数の定義種別を指定します。指定しない場合、デフォルトでは String です。現在サポ
ートされているタイプは、string、boolean、int、enum、password、storageclass、
hostname です。
required bool false
この値の定義が必須かどうかを指定します。(true と false)
default string false
変数のデフォルトの値を指定します。
group string false
入力値のグループを指定します。
min_length int false
最小文字数を指定します。
max_length int false
最大文字数を指定します。
min int false
最小値を指定します。
max int false
最大値を指定します。
8
Helm Charts の question.yml(2)
変数種別 値タイプ 必須 詳細
options []string false
変数種別がenumの場合に指定します。例えば、以下のように指定します
options:
- “ClusterIP”
- “NodePort”
- “LoadBalancer”
valid_chars string false 入力文字列の正規表現による正しいバリデーションを指定します。
invalid_chars string false 入力文字列の正規表現による間違っているバリデーションを指定します。
subquestions []subquestion false ネストした入力項目を配列で指定します。
show_if string false
条件式がtrueの時に現在の値を表示します。
(例)show_if: "serviceType=Nodeport"
show_subquestion_
if
string false
show_subquestion_if が trueの時、または options のどれか一つ
に合致していたら subquestions を表示します。
(例)show_subquestion_if: "true"
※注意:subquestions[]には、keyとして subquestionsやshow_subquestion_if
をネストすることはできません。その他の種別は利用できます。
サンプル app-readme.md
9
# WordPress
[WordPress](https://wordpress.org/) is one of the most versatile open source content management systems on the market. Apublishing platform
for building blogs and websites.
This chartbootstraps a [WordPress](https://github.com/bitnami/bitnami-docker-wordpress) deployment ona [Kubernetes](http://kubernetes.io)
cluster using the [Helm](https://helm.sh) packagemanager.Thechartalso packages the [Bitnami MariaDB
chart](https://github.com/kubernetes/charts/tree/master/stable/mariadb) to provide the backend database for the WordPress application.
https://raw.githubusercontent.com/rancher/charts/master/charts/wordpress/v1.0.5/app-readme.md
サンプル questions.yml
10
categories:
-Blog
-CMS
questions:
-variable: defaultImage
default: "true"
description: "Usedefault Dockerimage"
label: UseDefault Image
type: boolean
show_subquestion_if: false
group: "ContainerImages"
subquestions:
-variable: image.repository
default: "bitnami/wordpress"
description: "WordPress image name"
type: string
label: WordPress Image Name
-variable: image.tag
default: "4.9.4"
description: "WordPress image tag"
type: string
label: ImageTag
-variable: mariadb.image.repository
default: "bitnami/mariadb"
description: "MariaDB image name"
type: string
label: MariaDB ImageName
-variable: mariadb.image.tag
default: "10.1.32"
description: "MariaDB image tag"
type: string
label: MariaDB ImageTag
https://github.com/rancher/charts/blob/master/charts/wordpress/v1.0.5/questions.yml
フォーム項目を以下にyaml配列で記述する
カタログリストの分類を表記する
変数名をvariable:の後に記載
ここが配列1つ
デフォルト値を記述
変数の詳細を記載
subquestions
変数のラベルを記載
変数種別
変数をまとめる
ラベルも兼ねる
defaultImageの値がfalseの場合
にsubquestions以下を表示する
question.yml と画面の対比
11
questions:
- variable: defaultImage
default: "true"
description: "Use default Docker image"
label: Use Default Image
type: boolean
show_subquestion_if: false
group: "Container Images“
subquestions:
・・・・・・
defaultImageの値がfalseの場合
にsubquestions以下を表示する
questions.yml
Rancher UI
Rancher Helmリソースの指定
12
Rancher Helmのquestions.yml でのコンテナーリソースの指定の仕方
例:GPUリソースの定義方法
1. Native HelmCharts のdeployment.yaml
https://github.com/helm/charts/blob/master/stable/tensorflow-
notebook/templates/deployment.yaml
で以下のように指定されているとする。
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: {{ template "tensorflow-notebook.fullname" . }}
labels:
app: {{ template "tensorflow-notebook.name" . }}
chart: {{ template "tensorflow-notebook.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
selector:
matchLabels:
app: {{ template "tensorflow-notebook.name" . }}
release: {{ .Release.Name }}
template:
metadata:
labels:
app: {{ template "tensorflow-notebook.name" . }}
release: {{ .Release.Name }}
spec:
containers:
- name: jupyter
2. Native HelmCharts のvalues.yaml
https://github.com/helm/charts/blob/master/stable/tensorflow-
notebook/values.yaml
で以下のように指定されているとする。
# Default values for ack-tensorflow-dev.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
jupyter:
image:
repository: tensorflow/tensorflow
tag: 1.6.0-devel
pullPolicy: IfNotPresent
password: tensorflow
resources: {}
# limits:
# cpu: 100m
# memory: 128Mi
# nvidia.com/gpu: 1
# requests:
# cpu: 100m
# memory: 128Mi
# nvidia.com/gpu: 1
3. RacherHelmChartsの questions.yaml
以下のように指定する
# Default values for ack-tensorflow-dev.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
questions:
- variable: jupyter.resources.requests.nvidia.com/gpu
label: request gpu
default: 1
type: int
required: false
- variable: jupyter.resources.requests.cpu
label: request cpu
default: 100m
type: string
required: true
- variable: jupyter.resources.requests.memory
label: request memory
default: 128Mi
type: string
required: true
deployment.yaml values.yaml questions.yaml

Contenu connexe

Tendances

Webアプリケーションの パフォーマンス向上のコツ 実践編
 Webアプリケーションの パフォーマンス向上のコツ 実践編 Webアプリケーションの パフォーマンス向上のコツ 実践編
Webアプリケーションの パフォーマンス向上のコツ 実践編Masahiro Nagano
 
GKEで半年運用してみた
GKEで半年運用してみたGKEで半年運用してみた
GKEで半年運用してみたKatsutoshi Nagaoka
 
Apache Drill で見る Twitter の世界
Apache Drill で見る Twitter の世界Apache Drill で見る Twitter の世界
Apache Drill で見る Twitter の世界Masaru Watanabe
 
Rancher command line interface
Rancher command line interfaceRancher command line interface
Rancher command line interfaceMasahito Zembutsu
 
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境Katsutoshi Nagaoka
 
Amazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズAmazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズSORACOM, INC
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較Sugawara Genki
 
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
机上の Kubernetes -  形式手法で見るコンテナオーケストレーション #NGK2016B机上の Kubernetes -  形式手法で見るコンテナオーケストレーション #NGK2016B
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016By_taka_23
 
Web技術勉強会23回目
Web技術勉強会23回目Web技術勉強会23回目
Web技術勉強会23回目龍一 田中
 
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレDocker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレperyaudo
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstartHideki Saito
 
今日から使い始めるChef
今日から使い始めるChef今日から使い始めるChef
今日から使い始めるChefMasahiro NAKAYAMA
 
MackerelAPI使ってみた
MackerelAPI使ってみたMackerelAPI使ってみた
MackerelAPI使ってみたShugo Numano
 
東京Node学園#3 Domains & Isolates
東京Node学園#3 Domains & Isolates東京Node学園#3 Domains & Isolates
東京Node学園#3 Domains & Isolateskoichik
 
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきかElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきかAmazon Web Services Japan
 
Fission で 始める Containerless Kubernetes #serverlesstokyo
Fission で 始める Containerless Kubernetes #serverlesstokyoFission で 始める Containerless Kubernetes #serverlesstokyo
Fission で 始める Containerless Kubernetes #serverlesstokyoy_taka_23
 
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなしMasahiro NAKAYAMA
 

Tendances (20)

Webアプリケーションの パフォーマンス向上のコツ 実践編
 Webアプリケーションの パフォーマンス向上のコツ 実践編 Webアプリケーションの パフォーマンス向上のコツ 実践編
Webアプリケーションの パフォーマンス向上のコツ 実践編
 
GKEで半年運用してみた
GKEで半年運用してみたGKEで半年運用してみた
GKEで半年運用してみた
 
Apache Drill で見る Twitter の世界
Apache Drill で見る Twitter の世界Apache Drill で見る Twitter の世界
Apache Drill で見る Twitter の世界
 
Rancher command line interface
Rancher command line interfaceRancher command line interface
Rancher command line interface
 
Using Windows Azure
Using Windows AzureUsing Windows Azure
Using Windows Azure
 
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境
 
Amazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズAmazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズ
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較
 
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
机上の Kubernetes -  形式手法で見るコンテナオーケストレーション #NGK2016B机上の Kubernetes -  形式手法で見るコンテナオーケストレーション #NGK2016B
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
 
Web技術勉強会23回目
Web技術勉強会23回目Web技術勉強会23回目
Web技術勉強会23回目
 
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレDocker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレ
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstart
 
今日から使い始めるChef
今日から使い始めるChef今日から使い始めるChef
今日から使い始めるChef
 
MackerelAPI使ってみた
MackerelAPI使ってみたMackerelAPI使ってみた
MackerelAPI使ってみた
 
東京Node学園#3 Domains & Isolates
東京Node学園#3 Domains & Isolates東京Node学園#3 Domains & Isolates
東京Node学園#3 Domains & Isolates
 
Puppet on AWS
Puppet on AWSPuppet on AWS
Puppet on AWS
 
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきかElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
 
Hive chapter 2
Hive chapter 2Hive chapter 2
Hive chapter 2
 
Fission で 始める Containerless Kubernetes #serverlesstokyo
Fission で 始める Containerless Kubernetes #serverlesstokyoFission で 始める Containerless Kubernetes #serverlesstokyo
Fission で 始める Containerless Kubernetes #serverlesstokyo
 
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
 

Similaire à Rancher Charts Introduction

ansible 社内お勉強会資料
ansible 社内お勉強会資料ansible 社内お勉強会資料
ansible 社内お勉強会資料Makoto Uehara
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Masahito Zembutsu
 
Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介Etsuji Nakai
 
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもんDocker Swarm モード にゅうもん
Docker Swarm モード にゅうもんMasahito Zembutsu
 
パフォーマンス計測Ciサービスを作って得た知見を共有したい
パフォーマンス計測Ciサービスを作って得た知見を共有したいパフォーマンス計測Ciサービスを作って得た知見を共有したい
パフォーマンス計測Ciサービスを作って得た知見を共有したいzaru sakuraba
 
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpMasahito Zembutsu
 
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionGoh Matsumoto
 
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造Etsuji Nakai
 
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料Masahito Zembutsu
 
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までDocker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までMasahito Zembutsu
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osakaNaotaka Jay HOTTA
 
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
 Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編 Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編Masahito Zembutsu
 
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編Masahito Zembutsu
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineEtsuji Nakai
 
今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門Toru Miyahara
 
今さら聞けない人のためのDocker超入門 - KOF
今さら聞けない人のためのDocker超入門 - KOF今さら聞けない人のためのDocker超入門 - KOF
今さら聞けない人のためのDocker超入門 - KOFVirtualTech Japan Inc.
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略Hiroshi SHIBATA
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門Kohei Tokunaga
 
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!Kohei Tokunaga
 

Similaire à Rancher Charts Introduction (20)

ansible 社内お勉強会資料
ansible 社内お勉強会資料ansible 社内お勉強会資料
ansible 社内お勉強会資料
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
 
Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介
 
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもんDocker Swarm モード にゅうもん
Docker Swarm モード にゅうもん
 
Fig
FigFig
Fig
 
パフォーマンス計測Ciサービスを作って得た知見を共有したい
パフォーマンス計測Ciサービスを作って得た知見を共有したいパフォーマンス計測Ciサービスを作って得た知見を共有したい
パフォーマンス計測Ciサービスを作って得た知見を共有したい
 
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
 
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
 
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造
 
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
 
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までDocker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
 
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
 Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編 Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
 
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container Engine
 
今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門
 
今さら聞けない人のためのDocker超入門 - KOF
今さら聞けない人のためのDocker超入門 - KOF今さら聞けない人のためのDocker超入門 - KOF
今さら聞けない人のためのDocker超入門 - KOF
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
 

Plus de Tetsurou Yano

Container storage for DeepLearning
Container storage for DeepLearningContainer storage for DeepLearning
Container storage for DeepLearningTetsurou Yano
 
軽量Kubernetes環境 K3Sのご紹介
軽量Kubernetes環境 K3Sのご紹介軽量Kubernetes環境 K3Sのご紹介
軽量Kubernetes環境 K3Sのご紹介Tetsurou Yano
 
GitLab CI/CD パイプライン
GitLab CI/CD パイプラインGitLab CI/CD パイプライン
GitLab CI/CD パイプラインTetsurou Yano
 
Nextcloud 16,15の新機能とOnline Office機能
Nextcloud 16,15の新機能とOnline Office機能Nextcloud 16,15の新機能とOnline Office機能
Nextcloud 16,15の新機能とOnline Office機能Tetsurou Yano
 
Nextcloud と Libreoffice online について
Nextcloud と Libreoffice online についてNextcloud と Libreoffice online について
Nextcloud と Libreoffice online についてTetsurou Yano
 
AI分野におけるコンテナオーケストレーションとは
AI分野におけるコンテナオーケストレーションとはAI分野におけるコンテナオーケストレーションとは
AI分野におけるコンテナオーケストレーションとはTetsurou Yano
 
Kubernetes で変わるインフラ
Kubernetes で変わるインフラKubernetes で変わるインフラ
Kubernetes で変わるインフラTetsurou Yano
 
Pachyderm Introduction
Pachyderm IntroductionPachyderm Introduction
Pachyderm IntroductionTetsurou Yano
 
SIerにおけるKubernetes活用(OSSユーザーによる勉強会-公開版)
SIerにおけるKubernetes活用(OSSユーザーによる勉強会-公開版)SIerにおけるKubernetes活用(OSSユーザーによる勉強会-公開版)
SIerにおけるKubernetes活用(OSSユーザーによる勉強会-公開版)Tetsurou Yano
 
Stylez GitLab勉強会 第1回
Stylez GitLab勉強会 第1回Stylez GitLab勉強会 第1回
Stylez GitLab勉強会 第1回Tetsurou Yano
 
Rancher enterpriseについて
Rancher enterpriseについてRancher enterpriseについて
Rancher enterpriseについてTetsurou Yano
 
Rancher jp1周年振り返り anniversary meetup slide summary
Rancher jp1周年振り返り anniversary meetup slide summaryRancher jp1周年振り返り anniversary meetup slide summary
Rancher jp1周年振り返り anniversary meetup slide summaryTetsurou Yano
 
Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由Tetsurou Yano
 
rancherによるdev opsの実際_スタイルズ
rancherによるdev opsの実際_スタイルズrancherによるdev opsの実際_スタイルズ
rancherによるdev opsの実際_スタイルズTetsurou Yano
 
Rancher Meetup Tokyo #7 Rancher Home
Rancher Meetup Tokyo #7 Rancher HomeRancher Meetup Tokyo #7 Rancher Home
Rancher Meetup Tokyo #7 Rancher HomeTetsurou Yano
 
Rancherで簡単に作るk8s環境 Kubernetes meetup tokyo #4 LT kubernetes on rancher
Rancherで簡単に作るk8s環境 Kubernetes meetup tokyo #4 LT kubernetes on rancherRancherで簡単に作るk8s環境 Kubernetes meetup tokyo #4 LT kubernetes on rancher
Rancherで簡単に作るk8s環境 Kubernetes meetup tokyo #4 LT kubernetes on rancherTetsurou Yano
 
GitLab Meetup Tokyo#2 Rancher gitlab container registry
GitLab Meetup Tokyo#2 Rancher gitlab container registryGitLab Meetup Tokyo#2 Rancher gitlab container registry
GitLab Meetup Tokyo#2 Rancher gitlab container registryTetsurou Yano
 
Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成
Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成
Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成Tetsurou Yano
 
Rancher LT Talk 20170126
Rancher LT Talk 20170126Rancher LT Talk 20170126
Rancher LT Talk 20170126Tetsurou Yano
 
Rancher Meetup Tokyo#3 Storageについて
Rancher Meetup Tokyo#3 StorageについてRancher Meetup Tokyo#3 Storageについて
Rancher Meetup Tokyo#3 StorageについてTetsurou Yano
 

Plus de Tetsurou Yano (20)

Container storage for DeepLearning
Container storage for DeepLearningContainer storage for DeepLearning
Container storage for DeepLearning
 
軽量Kubernetes環境 K3Sのご紹介
軽量Kubernetes環境 K3Sのご紹介軽量Kubernetes環境 K3Sのご紹介
軽量Kubernetes環境 K3Sのご紹介
 
GitLab CI/CD パイプライン
GitLab CI/CD パイプラインGitLab CI/CD パイプライン
GitLab CI/CD パイプライン
 
Nextcloud 16,15の新機能とOnline Office機能
Nextcloud 16,15の新機能とOnline Office機能Nextcloud 16,15の新機能とOnline Office機能
Nextcloud 16,15の新機能とOnline Office機能
 
Nextcloud と Libreoffice online について
Nextcloud と Libreoffice online についてNextcloud と Libreoffice online について
Nextcloud と Libreoffice online について
 
AI分野におけるコンテナオーケストレーションとは
AI分野におけるコンテナオーケストレーションとはAI分野におけるコンテナオーケストレーションとは
AI分野におけるコンテナオーケストレーションとは
 
Kubernetes で変わるインフラ
Kubernetes で変わるインフラKubernetes で変わるインフラ
Kubernetes で変わるインフラ
 
Pachyderm Introduction
Pachyderm IntroductionPachyderm Introduction
Pachyderm Introduction
 
SIerにおけるKubernetes活用(OSSユーザーによる勉強会-公開版)
SIerにおけるKubernetes活用(OSSユーザーによる勉強会-公開版)SIerにおけるKubernetes活用(OSSユーザーによる勉強会-公開版)
SIerにおけるKubernetes活用(OSSユーザーによる勉強会-公開版)
 
Stylez GitLab勉強会 第1回
Stylez GitLab勉強会 第1回Stylez GitLab勉強会 第1回
Stylez GitLab勉強会 第1回
 
Rancher enterpriseについて
Rancher enterpriseについてRancher enterpriseについて
Rancher enterpriseについて
 
Rancher jp1周年振り返り anniversary meetup slide summary
Rancher jp1周年振り返り anniversary meetup slide summaryRancher jp1周年振り返り anniversary meetup slide summary
Rancher jp1周年振り返り anniversary meetup slide summary
 
Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由
 
rancherによるdev opsの実際_スタイルズ
rancherによるdev opsの実際_スタイルズrancherによるdev opsの実際_スタイルズ
rancherによるdev opsの実際_スタイルズ
 
Rancher Meetup Tokyo #7 Rancher Home
Rancher Meetup Tokyo #7 Rancher HomeRancher Meetup Tokyo #7 Rancher Home
Rancher Meetup Tokyo #7 Rancher Home
 
Rancherで簡単に作るk8s環境 Kubernetes meetup tokyo #4 LT kubernetes on rancher
Rancherで簡単に作るk8s環境 Kubernetes meetup tokyo #4 LT kubernetes on rancherRancherで簡単に作るk8s環境 Kubernetes meetup tokyo #4 LT kubernetes on rancher
Rancherで簡単に作るk8s環境 Kubernetes meetup tokyo #4 LT kubernetes on rancher
 
GitLab Meetup Tokyo#2 Rancher gitlab container registry
GitLab Meetup Tokyo#2 Rancher gitlab container registryGitLab Meetup Tokyo#2 Rancher gitlab container registry
GitLab Meetup Tokyo#2 Rancher gitlab container registry
 
Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成
Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成
Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成
 
Rancher LT Talk 20170126
Rancher LT Talk 20170126Rancher LT Talk 20170126
Rancher LT Talk 20170126
 
Rancher Meetup Tokyo#3 Storageについて
Rancher Meetup Tokyo#3 StorageについてRancher Meetup Tokyo#3 Storageについて
Rancher Meetup Tokyo#3 Storageについて
 

Rancher Charts Introduction

  • 2. 自己紹介 経歴 : システム運用 10年・ネットワーク 6年・SI 8年 近頃はownCloud 営業、翻訳を担当 Rancherの好きな機能 : その他 : 全く上達しないRubyist 一番最初のPCは、OKI if-800 でした…。 矢野 哲朗 tetsurow.yano 株式会社スタイルズ 1
  • 3. Rancher 2.0におけるカタログ 2 Rancher 1.6にはカタログというのがありました。1ボタンで必要なアプリ ケーションがデプロイできるというとっても便利な機能でした。しかし、そ れは、docker-compose.ymlを利用してるものでした。 Rancher 2.0 ではオーケストレーションがKubernetesベースになりました。 当然、docker-compose.ymlが使えなくなりました。 Kubernetesでのパッケージマネージャーはまだ混沌としている状態です が、Rancher 2.0ではHelm Chartsというものを使うようになりました。
  • 4. カスタムカタログとCharts 3 Helm Charts Helm Chartsとは、アプリケーションを実行する為の様々なアプリケーションを含ん だパッケージです。 元々のHelm Chartsでは、キーと値をペアのセットのパラメーターを理解し、それを Answers としてセットしてデプロイする必要があります。 Helm 安定版とHelm インキュベーターでは、元々のHelm Chartがそのまま表示さ れます。 カスタムカタログでHelm Charts(Rancher形式でない)を利用することもできます(も ちろん、Rancher Chartsの利用を推奨します)。 Rancher Charts Rancher Chartsは、元々のHelm Chartsをコピーしたものですが、利便性をよくす るため app-readme.md と questions.yaml という2つのファイルを追加しています。 それぞれについて詳しくは、Rancher Charts 追加ファイルを参照してください。 https://rancher.com/docs/rancher/v2.x/en/catalog/custom
  • 5. Rancher Chartsのメリット 4 リビジョンの追跡を拡張 Helmでは、バージョンごとのデプロイには対応していますが、Racher ではチ ャート間のバージョンの違いを表示するためのトラッキングと改訂履歴を追加 しました。 アプリケーション起動の利便性向上 Rancher Chartsは、チャートの詳細と設定フォームを追加して、カタログアプリ を簡単にデプロイできるようにしています。Rancher のユーザーは、Helm 変 数リストを全て確認して、アプリケーションの起動方法を考える必要はありま せん。 アプリケーションリソース管理 Rancherは、アプリケーションの利用リソース状況を追跡します。アプリケーシ ョンを動かす為のオブジェクトがリストアップされたページで簡単に確認するこ とができ、トラブルシューティングすることもできます。
  • 6. 5 Rancher Catalog Rancher向けのファイル(元々のHelm Chartにはない) app-readme.md question.yml チャートのUIヘッダーに説明的なテキストを提供するファイル。 (以下の画像は、Rancherチャートとネイティブヘルムチャートの 違い) チャートの展開を簡素化するためのフォームの質問を含むファイ ル。 これがなければ、Key−Valueを使用して配置を構成する必要があ る。
  • 7. 6 Rancher Catalog Chartの構造 Rancher Chart Description app-readme.md ○ Rancher 2.0 UIで表示するためのReadmeファイル charts/ Chartの依存関係を含めるディレクトリ Chart.yaml Helm Chartの情報ファイル question.yml ○ Rancher 2.0 UIに関する質問を含むファイル templates/ values.ymlと組み合わせ、コンテナを生成するテンプレートYAMLの配 置 requirements.yml チャートの依存関係をリストするファイル README.md Helm Readmeファイル。[詳細説明]に表示される。 values.yaml チャートのデフォルトの設定値 Helm Chart Repository charts/<application name>/<app version>/ (例: charts/wordpress/v0.1/)
  • 8. 7 Helm Charts の question.yml(1) 変数種別 値タイプ 必須 詳細 variable string true values.yml ファイルで指定した変数名を定義する。ネストしたデータには、foo.bar のよ うに利用する。 label string true 変数のUI上のラベル名を指定する。 description string false 変数の説明を記載する。 type string false 変数の定義種別を指定します。指定しない場合、デフォルトでは String です。現在サポ ートされているタイプは、string、boolean、int、enum、password、storageclass、 hostname です。 required bool false この値の定義が必須かどうかを指定します。(true と false) default string false 変数のデフォルトの値を指定します。 group string false 入力値のグループを指定します。 min_length int false 最小文字数を指定します。 max_length int false 最大文字数を指定します。 min int false 最小値を指定します。 max int false 最大値を指定します。
  • 9. 8 Helm Charts の question.yml(2) 変数種別 値タイプ 必須 詳細 options []string false 変数種別がenumの場合に指定します。例えば、以下のように指定します options: - “ClusterIP” - “NodePort” - “LoadBalancer” valid_chars string false 入力文字列の正規表現による正しいバリデーションを指定します。 invalid_chars string false 入力文字列の正規表現による間違っているバリデーションを指定します。 subquestions []subquestion false ネストした入力項目を配列で指定します。 show_if string false 条件式がtrueの時に現在の値を表示します。 (例)show_if: "serviceType=Nodeport" show_subquestion_ if string false show_subquestion_if が trueの時、または options のどれか一つ に合致していたら subquestions を表示します。 (例)show_subquestion_if: "true" ※注意:subquestions[]には、keyとして subquestionsやshow_subquestion_if をネストすることはできません。その他の種別は利用できます。
  • 10. サンプル app-readme.md 9 # WordPress [WordPress](https://wordpress.org/) is one of the most versatile open source content management systems on the market. Apublishing platform for building blogs and websites. This chartbootstraps a [WordPress](https://github.com/bitnami/bitnami-docker-wordpress) deployment ona [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) packagemanager.Thechartalso packages the [Bitnami MariaDB chart](https://github.com/kubernetes/charts/tree/master/stable/mariadb) to provide the backend database for the WordPress application. https://raw.githubusercontent.com/rancher/charts/master/charts/wordpress/v1.0.5/app-readme.md
  • 11. サンプル questions.yml 10 categories: -Blog -CMS questions: -variable: defaultImage default: "true" description: "Usedefault Dockerimage" label: UseDefault Image type: boolean show_subquestion_if: false group: "ContainerImages" subquestions: -variable: image.repository default: "bitnami/wordpress" description: "WordPress image name" type: string label: WordPress Image Name -variable: image.tag default: "4.9.4" description: "WordPress image tag" type: string label: ImageTag -variable: mariadb.image.repository default: "bitnami/mariadb" description: "MariaDB image name" type: string label: MariaDB ImageName -variable: mariadb.image.tag default: "10.1.32" description: "MariaDB image tag" type: string label: MariaDB ImageTag https://github.com/rancher/charts/blob/master/charts/wordpress/v1.0.5/questions.yml フォーム項目を以下にyaml配列で記述する カタログリストの分類を表記する 変数名をvariable:の後に記載 ここが配列1つ デフォルト値を記述 変数の詳細を記載 subquestions 変数のラベルを記載 変数種別 変数をまとめる ラベルも兼ねる defaultImageの値がfalseの場合 にsubquestions以下を表示する
  • 12. question.yml と画面の対比 11 questions: - variable: defaultImage default: "true" description: "Use default Docker image" label: Use Default Image type: boolean show_subquestion_if: false group: "Container Images“ subquestions: ・・・・・・ defaultImageの値がfalseの場合 にsubquestions以下を表示する questions.yml Rancher UI
  • 13. Rancher Helmリソースの指定 12 Rancher Helmのquestions.yml でのコンテナーリソースの指定の仕方 例:GPUリソースの定義方法 1. Native HelmCharts のdeployment.yaml https://github.com/helm/charts/blob/master/stable/tensorflow- notebook/templates/deployment.yaml で以下のように指定されているとする。 apiVersion: apps/v1beta2 kind: Deployment metadata: name: {{ template "tensorflow-notebook.fullname" . }} labels: app: {{ template "tensorflow-notebook.name" . }} chart: {{ template "tensorflow-notebook.chart" . }} release: {{ .Release.Name }} heritage: {{ .Release.Service }} spec: selector: matchLabels: app: {{ template "tensorflow-notebook.name" . }} release: {{ .Release.Name }} template: metadata: labels: app: {{ template "tensorflow-notebook.name" . }} release: {{ .Release.Name }} spec: containers: - name: jupyter 2. Native HelmCharts のvalues.yaml https://github.com/helm/charts/blob/master/stable/tensorflow- notebook/values.yaml で以下のように指定されているとする。 # Default values for ack-tensorflow-dev. # This is a YAML-formatted file. # Declare variables to be passed into your templates. jupyter: image: repository: tensorflow/tensorflow tag: 1.6.0-devel pullPolicy: IfNotPresent password: tensorflow resources: {} # limits: # cpu: 100m # memory: 128Mi # nvidia.com/gpu: 1 # requests: # cpu: 100m # memory: 128Mi # nvidia.com/gpu: 1 3. RacherHelmChartsの questions.yaml 以下のように指定する # Default values for ack-tensorflow-dev. # This is a YAML-formatted file. # Declare variables to be passed into your templates. questions: - variable: jupyter.resources.requests.nvidia.com/gpu label: request gpu default: 1 type: int required: false - variable: jupyter.resources.requests.cpu label: request cpu default: 100m type: string required: true - variable: jupyter.resources.requests.memory label: request memory default: 128Mi type: string required: true deployment.yaml values.yaml questions.yaml

Notes de l'éditeur

  1. システム運用とか、ネットワーク周りですとかをいろいろとやっております。 owncloudの宣伝担当として営業や、翻訳作業をさせて頂いております。 LONGHORNが好きな機能です