1. inajob

    No comment

    inajob
Changes in body
Source | HTML | Preview
@@ -60,29 +60,33 @@
# addon-managerをどうやってデプロイするか?
addon-managerはコンテナとして提供されています ( https://console.cloud.google.com/gcr/images/google-containers/GLOBAL/kube-addon-manager ) これをデプロイするにはいくつかの方法が考えられます。
-## 方法1 クラスタを構成master NodeにDaemonSetsで起動するようにしておく
+**方法1 クラスタを構成master NodeにDaemonSetsで起動するようにしておく**
- クラスタ提供者からすると、利用者に消される恐れがある
- そのdaemonsetsを提供する仕組みで必要なmanifestをデプロイすれば良いのではないか
- kube-systemを触る権限がある人はこの機能を停止できてしまう
- RBACでkube-systemの操作を限定するならそれでも良さそう
- EnsureExistsの挙動はaddon-mangerを使わないと実現できない
-## 方法2 クラスタを構成するmaster Nodeにstatic podで起動するようにしておく
+**方法2 クラスタを構成するmaster Nodeにstatic podで起動するようにしておく**
- Static pod と呼ばれる方法 https://kubernetes.io/docs/tasks/administer-cluster/static-pod/
- kubectlで消すことができない
- minikubeもこの方法を使っている(後述)
-## 方法3 クラスタを構成するマシンにsystemdで起動するようにしておく
+**方法3 クラスタを構成するマシンにsystemdで起動するようにしておく**
- kubectlで消すことができない
- static pod(方法2)より大袈裟なので使う利点がなさそう
+**方法まとめ**
+
+方法を3つ書きましたが、利用者に消して欲しくないmanifestを提供するには 方法2がよさそうです。
+
# minikubeでの事例
minikubeはStatic podと呼ばれる方法。具体的には `/etc/kubernetes/manifestにaddon-manager` に `https://github.com/kubernetes/minikube/blob/master/deploy/addons/addon-manager.yaml` のようなマニフェストを配置することで、addon-managerをデプロイしています。
このmanifestでは環境変数でkubeconfigを渡し、hostpathで`/etc/kubernetes/addons/` をマウントしています。