Docker/K8S実践コンテナ開発入門@23日目
Dockerの勉強続きです。
書籍には「stableリポジトリはデフォルトで利用できるようになっていて、」
という文言があるのですがこれはv2の話のようです。
私の環境ではデフォルトでは利用できませんでしたので、以下のコマンドを実行しました。
■追加コマンド
helm repo add stable https://kubernetes-charts.storage.googleapis.com
以下のコマンドで確認
■確認コマンド
helm search repo stable/redmine
インストールを試してみる
■コマンド
//インストール helm install -f redmine.yaml redmine stable/redmine --version 4.0.0 //check helm ls
■リソースが作成されているか確認
lawrence@Chocolate job % kubectl get service,deployment --selector release=redmine NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/redmine-mariadb ClusterIP 10.104.184.160 <none> 3306/TCP 32m service/redmine-redmine NodePort 10.100.105.61 <none> 80:32413/TCP 32m NAME READY UP-TO-DATE AVAILABLE AGE deployment.extensions/redmine-redmine 1/1 1 1 32m
※デプロイには10分程度時間がかかりました。
redmineのTYPEがNodePortとなっており、
ポート番号が32413なのでそちらを利用してredmineに接続をしてみる。
■接続URL
http://localhost:32413
■helmのupgradeコマンド
helm upgrade -f redmine.yaml redmine stable/redmine --version 4.0.0
Chartのアンインストールは以下のコマンド
■コマンド
helm delete redmine
ロールバック機能として以下のコマンドもあるようだが、、、
■コマンド
helm ls --all
しかし、何も出ない。
v2ではデフォルトでリビジョンを残してくれているようですが、v3では残してくれないようです。
オプションで「--keep-history」が必要?と思われます。
完全削除の場合、書籍では「--purge」とのことですが
v3には存在しないflagであるため、おそらくデフォルトが完全削除になっています。
RBACに対応したアプリケーションをインストール
の章はskip
tillerへのserviceAccount追加とのことですが、v3ではtillerがないため
独自のchartを作成する
書籍に従って、nginxとechoで構成されるアプリケーションのChartを作成する。
localリポジトリを有効にする
まずは利用できるリポジトリを以下のコマンドで確認
■コマンド
helm repo list
以下のコマンドでWebサーバを起動する。
■起動コマンド
helm serve &
しかし、以下のエラーが発生
lawrence@Chocolate job % helm serve &
[1] 68359
lawrence@Chocolate job % Error: unknown command "serve" for "helm"
Run 'helm --help' for usage.
[1] + exit 1 helm serve
helmの公式を確認すると、
「Removal of helm serve
helm serve ran a local Chart Repository on your machine for development purposes. However, it didn't receive much uptake as a development tool and had numerous issues with its design. In the end, we decided to remove it and split it out as a plugin.
For a similar experience to helm serve, have a look at the local filesystem storage option in ChartMuseum and the servecm plugin.」
削除されていました。。。
servecm pluginを入れれば良さそう?なので以下のコマンドを実行
■コマンド
//plugin 導入 helm plugin install https://github.com/jdolitsky/helm-servecm //servecm実行 helm servecm //ChartMuseumがないとのことで yes //インストール後以下のコマンドで起動 helm servecm --port=8879 --context-path=/charts \ --storage="local" \ > --storage-local-rootdir="/"
接続してみると以下の通り、うまくいったかな?
Chartの雛形を作成する
■作成コマンド
helm create echo
Deployment、Service, Ingress, のyamlをそれぞれ作成し
Chartをパッケージングする。
ここの章ではyamlの定義を変数化しておき個別の値はvalues.yamlを作成しておくことで、
パッケージングの処理の際に置換されるように作成される。
本番運用でもこちらの利用方法は一般的な気がしますね。
■パッケージングコマンド
helm package echo
書籍ではローカルリポジトリに追加されるようですが、
v3なのか追加されず。以下のコマンドで追加されないか試してみるもの、エラーが発生し進まず。
lawrence@Chocolate job % helm install local/echo ./echo-0.1.0.tgz
Error: parse error at (echo/templates/ingress.yaml:34): undefined variable "$ingresPath"
ここから先はまた明日対応予定。