1.介绍
什么是kubeapps?
Kubeapps是Bitnami公司的一个项目,其目的是为Kubernetes的使用者们提供已经打包好的应用仪表盘,它拥有网页界面可以更方便的部署和管理k8s 原生应用。
kubeapps功能说明:
应用仪表盘-包含绝大多数的云原生应用
管理应用-部署,删除,升级以及修改配置
服务目录-(Service Catalog)是一种扩展 API,它能让 Kubernetes 集群中运行的应用易于使用外部托管的的软件服务,例如云供应商提供的数据仓库服务。
2.安装kubeapps
下面我演示下如何安装kubeapps并使用kubeapps来部署kubernetes 应用。
2.1 安装Helm
curl -fsSL -o get_helm.sh https://raw.githubusercontent...
chmod 700 get_helm.sh
./get_helm.sh
2.2 helm3添加Bitnami Repository
使用Helm chart来安装最新版本的Kubeapps:
helm repo add bitnami https://charts.bitnami.com/bi...
2.3 安装Kubeapps
如果你使用 Helm 3, 你需要设置另外的参数,详细命令如下:
kubectl create namespace kubeapps
helm install --name kubeapps --namespace kubeapps bitnami/kubeapps(该命令仅支持helm2)
helm install kubeapps --namespace kubeapps bitnami/kubeapps --set useHelm3=true
2.4 创建 Kubernetes API token
访问kubeapps的web界面需要Kubernetes API token 来验证Kubernetes API server.
kubectl create serviceaccount kubeapps-operator
kubectl create clusterrolebinding kubeapps-operator --clusterrole=cluster-admin --serviceaccount=default:kubeapps-operator
注意:生产环境不建议创建cluster-admin 用户. 请参考Access Control 文档来给生产环境配置合适的用户.
2.5 获取Token
Linux/macOS 系统可以使用如下命令来获取Token:
kubectl get secret $(kubectl get 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
2.6 修改访问模式并访问kubeapps
编辑kubeapps服务svc 将连接类型改为NodePort
kubectl edit svc kubeapps -n kubeapps
看下服务所用端口;
然后打开浏览器输入node的ip加上32024端口则可以访问kubeapps;输入获取的Token就可以直接登录进去。
登录kubeapps之后在catalog之中可以发现有好多已经打包的原生应用可以一建部署。
- 演示安装应用
访问kubeapps 主页并导航到应用目录。
譬如选择grafana,有bitnami以及官方stable的包;
这里我选择bitnami的应用包,进去之后点击Deploy
确认配置之后直接点击Submit
应用就部署完了。
使用kubectl edit svc crazy-jail-grafana -n kubeapps 来修改外网访问类型为NodePort
修改完成后,使用命令kubectl get svc -n kubeapps 查看grafana 服务的外部访问端口。
浏览器访问node的ip加30647端口。
Grafana就部署好了。
我后面又测试了prometheus,wordpress等应用。发现除了pv需要手动创建,其他配置都是自动化部署。相对于传统部署方式,省下了很多配置应用的时间;绝对是原生应用提高生产效率的一把好手。
- 官方参考资料: