kubeapps是一個由vmware/bitnami主導的開源項目,主旨為在kubernetes中讓你透過網頁UI去佈署與管理許多應用程式。
那我們就根據 getting start 引導來使用helm進行安裝
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
kubectl create namespace kubeapps
helm install kubeapps --namespace kubeapps bitnami/kubeapps
Deploy成功
佈署完成後產生的instances清單,其中亦有包含postgresql(作為backend,有需要持久性儲存的話就要去調整values.yml)
這邊的話因為我們的cluster沒有透過oidc/oauth2.0之類的機制去強化我們的cluster身份安全性,所以我們需要用最原始的方式,將kubernetes的中的權限透過綁定指派給到對應的service account,再使用token進行存取。
kubectl create --namespace default serviceaccount kubeapps-operator
kubectl create clusterrolebinding kubeapps-operator --clusterrole=cluster-admin --serviceaccount=default:kubeapps-operator
請注意! 這邊綁定的為cluster-admin,實務上不該這樣使用,這裡只是一日快速體驗
取得token
kubectl get --namespace default secret $(kubectl get --namespace default serviceaccount kubeapps-operator -o jsonpath='{range .secrets[*]}{.name}{"\n"}{end}' | grep kubeapps-operator-token) -o jsonpath='{.data.token}' -o go-template='{{.data.token | base64decode}}' && echo
將kubeapps進行port-forward
kubectl port-forward svc/kubeapps 8080:80 -n kubeapps
輸入剛剛取得的token
一進來後就可以看到他有讀到我目前透過helm安裝了哪些apps
點進應用後可以發現,他就是替你整理與此應用相關的yaml,也讓你能夠從介面執行upgrade/rollback
可以看到Catalog這邊展示能夠讓你佈署的應用程式,而預設repository就是bitnami
那我們試著將stakater 加入helm repoistory
所以如果有自己的helm repo/chartmuseum之類的也是能夠這樣用~
另外看了一下operator lifecycle manager還處於beta state這邊就先沒去試了
可以看到我們成功將stakater的repository加入了,也能夠佈署上面的helm應用
不過因為有很多chart沒有將README設定在正確的位置,導致點進去都是嘗試loading readme的訊息(應該要跟chart同層)
那今天的kubeapps一日體驗就到這邊了,感覺上使用的情境應該是針對未來在公司內部multi tenancy上,對於公司內部傳統的主機管理員倘若需要演變為使用Kubernetes進行資源控管,那這樣子的一個Web輔助工具對於不熟悉Kubernetes的IT管理員應該是挺有幫助的(我自己認為的)。不過其實昨天提到的rancher也都有對應的功能就是了,感覺大家的重複性也是挺高的。
不過對於已經熟悉helm、oci registry還有kubernetes的人來說,這個東西其實可有可無(應該吧?XD),可能就是多了個介面讓人比較安心吧XD