侧边栏壁纸
博主头像
小周的知识站 博主等级

行动起来,活在当下

  • 累计撰写 80 篇文章
  • 累计创建 12 个标签
  • 累计收到 8 条评论

目 录CONTENT

文章目录

Helm Chart包可视化管理 Kubeapps应用商店

Administrator
2024-12-08 / 0 评论 / 0 点赞 / 16 阅读 / 0 字

1 Kubeapps介绍

Kubeapps提供了一个开源的Helm UI界面,方便以图形界面的形式管理Helm应用。

  • 部署应用。可从公共或私有仓库中浏览chart并将其部署到集群中;

  • 管理应用。升级、管理和删除部署在kubernetes集群中的应用程序;

  • 搜索功能。Kubeapps提供chart搜索页面;

2 使用helm部署kubeapps

[root@k8s-master01 ~]# helm repo add bitnami https://charts.bitnami.com/bitnami
"bitnami" has been added to your repositories

[root@k8s-master01 ~]# helm repo list
NAME                    URL
micosoft                http://mirror.azure.cn/kubernetes/charts/
prometheus-community    https://prometheus-community.github.io/helm-charts
harborhelm              https://www.kubemsb.com/chartrepo/nginx
bitnami                 https://charts.bitnami.com/bitnami

[root@k8s-master01 ~]# helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "harborhelm" chart repository
...Successfully got an update from the "prometheus-community" chart repository
...Successfully got an update from the "micosoft" chart repository
...Successfully got an update from the "bitnami" chart repository
Update Complete. ⎈Happy Helming!⎈

[root@k8s-master01 ~]# helm search repo kubeapps
NAME                    CHART VERSION   APP VERSION     DESCRIPTION
bitnami/kubeapps        10.0.2          2.4.6           Kubeapps is a web-based UI for launching and ma...

[root@k8s-master01 ~]# kubectl create ns kubeapps
namespace/kubeapps created

[root@k8s-master01 ~]# helm install kubeapps bitnami/kubeapps --namespace kubeapps

输出信息:
NAME: kubeapps
LAST DEPLOYED: Sun Jul 31 00:00:03 2022
NAMESPACE: kubeapps
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: kubeapps
CHART VERSION: 10.0.2
APP VERSION: 2.4.6** Please be patient while the chart is being deployed **
​
Tip:
​
  Watch the deployment status using the command: kubectl get pods -w --namespace kubeapps
​
Kubeapps can be accessed via port 80 on the following DNS name from within your cluster:
​
   kubeapps.kubeapps.svc.cluster.local
​
To access Kubeapps from outside your K8s cluster, follow the steps below:
​
1. Get the Kubeapps URL by running these commands:
   echo "Kubeapps URL: http://127.0.0.1:8080"
   kubectl port-forward --namespace kubeapps service/kubeapps 8080:80
​
2. Open a browser and access Kubeapps using the obtained URL.

[root@k8s-master01 ~]# kubectl get pods -n kubeapps
NAME                                                         READY   STATUS    RESTARTS   AGE
apprepo-kubeapps-sync-bitnami-w5jlr-6nvsl                    1/1     Running   0          30s
kubeapps-994b988b5-dlp9r                                     1/1     Running   0          96s
kubeapps-994b988b5-ttxv8                                     1/1     Running   0          96s
kubeapps-internal-apprepository-controller-c78bf86bc-lcpz2   1/1     Running   0          96s
kubeapps-internal-dashboard-6445c69c6b-fgkrs                 1/1     Running   0          96s
kubeapps-internal-dashboard-6445c69c6b-phmxn                 1/1     Running   0          96s
kubeapps-internal-kubeappsapis-c5d8cbb7f-6rnnl               1/1     Running   0          96s
kubeapps-internal-kubeappsapis-c5d8cbb7f-9jthp               1/1     Running   0          96s
kubeapps-internal-kubeops-58794f58c8-bkjtc                   1/1     Running   0          96s
kubeapps-internal-kubeops-58794f58c8-qk655                   1/1     Running   0          96s
kubeapps-postgresql-0                                        1/1     Running   0          96s

[root@k8s-master01 ~]# kubectl get svc -n kubeapps
NAME                             TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)    AGE
kubeapps                         ClusterIP   10.96.2.39    <none>        80/TCP     2m18s
kubeapps-internal-dashboard      ClusterIP   10.96.1.130   <none>        8080/TCP   2m18s
kubeapps-internal-kubeappsapis   ClusterIP   10.96.2.40    <none>        8080/TCP   2m18s
kubeapps-internal-kubeops        ClusterIP   10.96.3.116   <none>        8080/TCP   2m18s
kubeapps-postgresql              ClusterIP   10.96.0.235   <none>        5432/TCP   2m18s
kubeapps-postgresql-hl           ClusterIP   None          <none>        5432/TCP   2m18s

3 访问kubeapps

[root@k8s-master01 ~]# vim kubeapps-ingress.yaml
​
[root@k8s-master01 ~]# cat kubeapps-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-kubeapps                    #自定义ingress名称
  namespace: kubeapps
  annotations:
    ingressclass.kubernetes.io/is-default-class: "true"
    kubernetes.io/ingress.class: nginx
spec:
  rules:
  - host: kubeapps.kubemsb.com                   # 自定义域名
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: kubeapps     # 对应上面创建的service名称
            port:
              number: 80

[root@k8s-master01 ~]# kubectl apply -f kubeapps-ingress.yaml
ingress.networking.k8s.io/ingress-kubeapps created

参考链接:https://kubeapps.dev/docs/latest/tutorials/getting-started/

创建用户
[root@k8s-master01 ~]# kubectl create --namespace default serviceaccount kubeapps-operator
serviceaccount/kubeapps-operator created

绑定集群管理员角色
[root@k8s-master01 ~]# kubectl create clusterrolebinding kubeapps-operator --clusterrole=cluster-admin --serviceaccount=default:kubeapps-operator
clusterrolebinding.rbac.authorization.k8s.io/kubeapps-operator created

[root@k8s-master01 ~]# cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
  name: kubeapps-operator-token
  namespace: default
  annotations:
    kubernetes.io/service-account.name: kubeapps-operator
  type: kubernetes.io/service-account-token
EOF
​
​
输出:
secret/kubeapps-operator-token created

获取访问token
[root@k8s-master01 ~]# kubectl get --namespace default secret kubeapps-operator-token -o jsonpath='{.data.token}' -o go-template='{{.data.token | base64decode}}' && echo
eyJhbGciOiJSUzI1NiIsImtpZCI6ImRneWtqS2s2OWFsZU94UklERWh5SlhMSk56SUZZQzZOYlhHbUZIaDZpcTQifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6Imt1YmVhcHBzLW9wZXJhdG9yLXRva2VuIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6Imt1YmVhcHBzLW9wZXJhdG9yIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYjgzMjM3MDAtODI3MC00ODI5LWFmNmUtODg3N2FlNGM4OWQ3Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmRlZmF1bHQ6a3ViZWFwcHMtb3BlcmF0b3IifQ.NF4A7N394MwcRDQbHOTkahg_ODqi7OCV9CzP7zcb5kXwHo-DeQ20cf7CTYmyQCw1aKaYae-Vdi_ncJ9araSdapshoBX9zfQ4dl6rP6Z_g_rtHZBIe4rCopOPUqncY-OjonQL1R0MY8ODqE2BVPF3kHwcBnamT9c1nmib42fB_cIBqwu72c71LURvQifwiluriQZRJQWh20pM7p8aUkNXqvFId03iMdgmPXdOd5W2Kl1Rys2DUfPmRV1tmqXHuZOcMnHmSU7DzcaXcnoGesZUnB7sqtL2HhTn7iLnk323MaXzhNY5pWt2nZC-6U2ZFkPSkV2LZ1K6D2IxaImkZxRPVQ

4 通过kubeapps部署应用案例

4.1 通过Kubeapps部署nginx

[root@k8s-master01 nginx]# kubectl get pods -n kubeapps
NAME                                                         READY   STATUS                       RESTARTS      AGE
......
kubemsb-web-nginx-55fdb5bfd6-4cfpg                           1/1     Running                      0             57s

4.2 通过kubeapps部署mysql

[root@k8s-master01 ~]# kubectl get pods
NAME                                     READY   STATUS    RESTARTS      AGE
kubemsb-web-db-mysql-primary-0           1/1     Running   0             5h29m
kubemsb-web-db-mysql-secondary-0         1/1     Running   0             5h29m

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区