Kubeapps是一个基于web的UI,用于在Kubernetes集群中部署和管理应用程序。
此文档用于记录kubeapps的安装过程
安装helm
因为安装kubeapps需要使用helm安装 所有先提前安装helm
此前在此文档中使用二进制安装的helm客户端,这次使用脚本安装
安装helm客户端
1
2
3
|
[root@k8s-77-36 ~]# curl -LO https://git.io/get_helm.sh
[root@k8s-77-36 ~]# chmod 700 get_helm.sh
[root@k8s-77-36 ~]# ./get_helm.sh
|
或
1
|
[root@k8s-77-36 ~]# curl -L https://git.io/get_helm.sh | bash
|
安装Helm Tiller
Helm Tiller是Helm的server,Tiller有多种安装方式,比如本地安装(没有尝试过)或以pod形式部署到Kubernetes集群中。本文以pod安装为例
安装helm tiller只需要执行helm init就可以了, 不过镜像默认使用gcr.io/kubernetes-helm/tiller; 仓库默认使用https://kubernetes-charts.storage.googleapis.com。如果服务器不能科学上网可能无法访问相关域名,导致安装出错。可以使用国内的源提供的镜像和站点
1
2
|
[root@k8s-77-36 ~]# helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.3 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
|
注意:tiller的版本一定要与客户端的版本对应 安装tiller之前可以使用helm version查看客户端的版本
验证安装
确认tiller
1
2
|
[root@k8s-77-36 ~]# kubectl get pods -n kube-system |grep tiller
tiller-deploy-9bf6fb76d-2wk4b 1/1 Running 0 45s
|
确认helm
1
2
3
|
[root@k8s-77-36 ~]# helm version
Client: &version.Version{SemVer:"v2.14.1", GitCommit:"5270352a09c7e8b6e8c9593002a73535276507c0", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.1", GitCommit:"5270352a09c7e8b6e8c9593002a73535276507c0", GitTreeState:"clean"}
|
设置tiller权限
默认的tiller的权限很小,可以给它加大权限
1
2
3
|
[root@k8s-77-36 ~]# kubectl create serviceaccount --namespace=kube-system tiller
[root@k8s-77-36 ~]# kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
[root@k8s-77-36 ~]# kubectl patch deploy --namespace=kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
|
kubeapps安装配置
安装kubeapps
方式一
直接安装
1
2
|
[root@k8s-77-36 ~]# helm repo add bitnami https://charts.bitnami.com/bitnami
[root@k8s-77-36 ~]# helm install --name kubeapps --namespace kubeapps bitnami / kubeapps
|
方式二
修改配置文件安装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[root@k8s-77-36 ~]# helm repo add bitnami https://charts.bitnami.com/bitnami
[root@k8s-77-36 ~]# helm fetch bitnami/kubeapps
[root@k8s-77-36 ~]# tar -xvf kubeapps-2.0.4.tgz
[root@k8s-77-36 ~]# cd kubeapps/
[root@k8s-77-36 kubeapps]# vim values.yaml
...
#修改成国内站点
initialRepos:
- name: stable
url: https://mirror.azure.cn/kubernetes/charts/
- name: incubator
url: http://mirror.azure.cn/kubernetes/charts-incubator/
- name: bitnami
url: https://charts.bitnami.com/bitnami
...
[root@k8s-77-36 kubeapps]# helm install --name kubeapps --namespace kubeapps -f values.yaml bitnami/kubeapps
|
创建Kubernetes API token
创建token
1
2
|
[root@k8s-77-36 kubeapps]# kubectl create serviceaccount kubeapps-operator
[root@k8s-77-36 kubeapps]# kubectl create clusterrolebinding kubeapps-operator --clusterrole=cluster-admin --serviceaccount=default:kubeapps-operator
|
查看token
1
|
[root@k8s-77-36 kubeapps]# kubectl get secret $(kubectl get serviceaccount kubeapps-operator -o jsonpath='{.secrets[].name}') -o jsonpath='{.data.token}' | base64 --decode
|
创建service
编写service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
[root@k8s-77-36 ~]# vim kubeapps-svc.yml
apiVersion: v1
kind: Service
metadata:
name: kubeapps-svc
namespace: kubeapps
labels:
app: kubeapps
spec:
type: NodePort
ports:
- port: 8080
nodePort: 30080
selector:
app: kubeapps
|
部署service
1
|
[root@k8s-77-36 ~]# kubectl apply -f kubeapps-svc.yaml
|
pod都启动后web访问http://172.16.77.36:30080 进行访问
kubeapps卸载
1
2
3
|
[root@k8s-77-36 ~]# helm delete --purge kubeapps
[root@k8s-77-36 ~]# kubectl delete crd apprepositories.kubeapps.com
[root@k8s-77-36 ~]# kubectl delete namespace kubeapps #如果此命名空间里仅有kubeapps可进行此操作
|
注意事项
- 如果是卸载后重新安装,可能会有几个pod提示nginx启动错误 可以用以下办法解决
1
2
|
[root@k8s-77-36 ~]# helm install --name kubeapps --namespace kubeapps -f values.yaml bitnami/kubeapps --set frontend.image.tag=latest --set dashboard.image.tag=latest
|
Author
dylan
LastMod
2019-08-24
License
如需转载请注明文章作者和出处。谢谢!