云原生|kubernetes|centos下安装部署kubeapps以及简单的使用示例(一)

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 云原生|kubernetes|centos下安装部署kubeapps以及简单的使用示例

前言:


kubeapps是Bitnami公司的一个项目,其目的是为Kubernetes的使用者们提供已经打包好的应用仪表盘,它拥有网页界面可以更方便的部署和管理k8s 原生应用。

包含绝大多数的云原生应用管理应用-部署,删除,升级以及修改配置服务目录-(Service Catalog)是一种扩展api,它能让 Kubernetes 集群中运行的应用易于使用外部托管的的软件服务,例如云供应商提供的数据仓库服务。

说了这么多,其实估计很多同学还是云山雾罩的,OK,宝塔面板大家应该都知道的吧,可以把kubeapps想象成这个玩意----kubernetes里的宝塔面板,只是这个“面板”管理的是chart包而已了。

部署安装kubeapps


一,

kubeapps的部署比较简单,基本也就是几条命令就搞定了。主要是有一些先决条件,例如,helm包管理器这个 不用说肯定要有,如何安装helm就不在这里废话了。

添加helm的官方仓库:

# 添加 kubeapps 仓库
helm repo add bitnami https://charts.bitnami.com/bitnami
# 创建 kubeapps 的命名空间
kubectl create namespace kubeapps

此时,可以查询到现有helm仓库一个(名字是bitnami,前面定义的):

[root@k8s-master ~]# helm repo list
NAME    URL                               
bitnami https://charts.bitnami.com/bitnami

查询此仓库内所有的关于redis的chart(helm search repo  仓库名称/要查询的chart  -l  如果没有l,只显示最新的那个chart):

[root@k8s-master kubeapps]# helm search repo bitnami/redis  -l 
NAME                  CHART VERSION APP VERSION DESCRIPTION                                       
bitnami/redis         17.3.5        7.0.5       Redis(R) is an open source, advanced key-value ...
bitnami/redis         17.3.4        7.0.5       Redis(R) is an open source, advanced key-value ...
bitnami/redis         17.3.2        7.0.5       Redis(R) is an open source, advanced key-value ...
bitnami/redis         17.3.1        7.0.5       Redis(R) is an open source, advanced key-value ...
bitnami/redis         17.2.0        7.0.5       Redis(R) is an open source, advanced key-value ...
。。。。。。略略略

查询此仓库内所有的关于kubeapps的chart(helm search repo  仓库名称/要查询的chart  -l  如果没有l,只显示最新的那个chart):

[root@k8s-master kubeapps]# helm search repo bitnami/kubeapps  -l 
NAME              CHART VERSION APP VERSION DESCRIPTION                                       
bitnami/kubeapps  11.0.1        2.6.0       Kubeapps is a web-based UI for launching and ma...
bitnami/kubeapps  10.3.5        2.5.1       Kubeapps is a web-based UI for launching and ma...
bitnami/kubeapps  10.3.4        2.5.1       Kubeapps is a web-based UI for launching and ma...
bitnami/kubeapps  10.3.3        2.5.1       Kubeapps is a web-based UI for launching and ma...
bitnami/kubeapps  10.3.1        2.5.0       Kubeapps is a web-based UI for launching and ma...

考虑到我的kubernetes集群版本是1.18,因此,挑选了一个不是版本太高的kubeapps---kubeapps-8.0.9,下载此chart包,并进入解压后的目录:

[root@k8s-master kubeapps]# helm pull bitnami/kubeapps --version=8.0.9

查看chart包内的README.MD文件中的先决条件:

kubernetes版本必须大于1.16,安装方式不限定,比如,minikube什么的都支持。

helm版本必须大于3.0.2.。

pgsql需要有pv插件支持,也就是volume插件。因此,需要一个默认的StorageClass,如何部署StorageClass请看我的博客:

kubernetes学习之持久化存储StorageClass(4)_晚风_END的博客-CSDN博客_kubernetes中用于持久化存储的组件

我的kubernetes版本是1.18.3,helm版本是3.2,因此,我可以安装kubeapps-8.0.9版本。

[root@k8s-master ~]# k get no
NAME         STATUS   ROLES    AGE   VERSION
k8s-master   Ready    <none>   15d   v1.18.3
k8s-node1    Ready    <none>   15d   v1.18.3
k8s-node2    Ready    <none>   15d   v1.18.3
[root@k8s-master ~]# helm version
version.BuildInfo{Version:"v3.2.4", GitCommit:"0ad800ef43d3b826f31a5ad8dfbb4fe05d143688", GitTreeState:"clean", GoVersion:"go1.13.12"}

下面是chart里面的README里的先决条件原文:

## Prerequisites
- Kubernetes 1.16+ (tested with both bare-metal and managed clusters, including EKS, AKS, GKE and Tanzu Kubernetes Grid, as well as dev clusters, such as Kind, Minikube and Docker for Desktop Kubernetes)
- Helm 3.0.2+
- Administrative access to the cluster to create Custom Resource Definitions (CRDs)
- PV provisioner support in the underlying infrastructure (required for PostgreSQL database)

二,OK,以上的先决条件搞定了就可以安装了,安装命令为:


# 安装
helm install kubeapps --namespace kubeapps kubeapps-8.0.9.tgz --version=8.0.9

安装时间根据网速来,可能会比较长,因为镜像都是从docker.io 官网下载的,安装完毕后的kubeapps相关的pod,service,configMap,serviceaccount,pv,pvc:

相关pods和service

[root@k8s-master ~]# k get po,svc -n kubeapps
NAME                                                             READY   STATUS      RESTARTS   AGE
pod/apprepo-kubeapps-sync-bitnami-1666098000-gr5ql               0/1     Completed   0          24h
pod/apprepo-kubeapps-sync-bitnami-1666098600-n5txd               0/1     Completed   0          24h
pod/apprepo-kubeapps-sync-bitnami-1666099200-js2nw               0/1     Completed   0          23h
pod/apprepo-kubeapps-sync-bitnami-hxm68-pgmk4                    0/1     Completed   2          5h28m
pod/kubeapps-67887978f5-vcbmh                                    1/1     Running     1          25h
pod/kubeapps-67887978f5-xsx7c                                    1/1     Running     2          25h
pod/kubeapps-internal-apprepository-controller-6d84d4d78-b2cjc   1/1     Running     1          25h
pod/kubeapps-internal-dashboard-84875db4c5-jdmmt                 1/1     Running     1          25h
pod/kubeapps-internal-dashboard-84875db4c5-zsrcl                 1/1     Running     1          25h
pod/kubeapps-internal-kubeappsapis-65c55c5c86-5kpq6              1/1     Running     1          25h
pod/kubeapps-internal-kubeappsapis-65c55c5c86-tjsw7              1/1     Running     1          25h
pod/kubeapps-internal-kubeops-bb7899866-kh8vx                    1/1     Running     1          25h
pod/kubeapps-internal-kubeops-bb7899866-sqk9p                    1/1     Running     1          25h
pod/kubeapps-postgresql-primary-0                                1/1     Running     1          25h
pod/kubeapps-postgresql-read-0                                   1/1     Running     2          25h
pod/mydokuwiki-79477dbcf7-hqk74                                  1/1     Running     0          5h9m
NAME                                     TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE
service/kubeapps                         NodePort       10.0.214.168   <none>        80:31637/TCP                 25h
service/kubeapps-internal-dashboard      NodePort       10.0.175.52    <none>        8080:31171/TCP               25h
service/kubeapps-internal-kubeappsapis   ClusterIP      10.0.17.79     <none>        8080/TCP                     25h
service/kubeapps-internal-kubeops        ClusterIP      10.0.80.30     <none>        8080/TCP                     25h
service/kubeapps-postgresql-primary      ClusterIP      10.0.49.36     <none>        5432/TCP                     25h
service/kubeapps-postgresql-primary-hl   ClusterIP      None           <none>        5432/TCP                     25h
service/kubeapps-postgresql-read         ClusterIP      10.0.126.247   <none>        5432/TCP                     25h
service/kubeapps-postgresql-read-hl      ClusterIP      None           <none>        5432/TCP                     25h
service/mydokuwiki                       LoadBalancer   10.0.184.105   <pending>     80:30403/TCP,443:30783/TCP   5h9m

pv和pvc

[root@k8s-master ~]# k get pv,pvc -n kubeapps
NAME                                                        CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                         STORAGECLASS          REASON   AGE
persistentvolume/pvc-1e943d44-d92d-4210-a52a-5f9b0143bbc7   8Gi        RWO            Delete           Bound    kubeapps/data-kubeapps-postgresql-primary-0   managed-nfs-storage            25h
persistentvolume/pvc-c2a706ee-e9a0-4db1-b9e5-3f4d6a0d21ea   8Gi        RWO            Delete           Bound    kubeapps/mydokuwiki                           managed-nfs-storage            5h10m
persistentvolume/pvc-e75f653e-cbef-460d-bb68-e791f552bfc7   8Gi        RWO            Delete           Bound    kubeapps/data-kubeapps-postgresql-read-0      managed-nfs-storage            25h
NAME                                                       STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS          AGE
persistentvolumeclaim/data-kubeapps-postgresql-primary-0   Bound    pvc-1e943d44-d92d-4210-a52a-5f9b0143bbc7   8Gi        RWO            managed-nfs-storage   25h
persistentvolumeclaim/data-kubeapps-postgresql-read-0      Bound    pvc-e75f653e-cbef-460d-bb68-e791f552bfc7   8Gi        RWO            managed-nfs-storage   25h
persistentvolumeclaim/mydokuwiki                           Bound    pvc-c2a706ee-e9a0-4db1-b9e5-3f4d6a0d21ea   8Gi        RWO            managed-nfs-storage   5h10m

相关的sa,secret

[root@k8s-master ~]# k get sa,secret -n kubeapps
NAME                                                        SECRETS   AGE
serviceaccount/default                                      1         26h
serviceaccount/kubeapps-internal-apprepository-controller   1         25h
serviceaccount/kubeapps-internal-kubeappsapis               1         25h
serviceaccount/kubeapps-internal-kubeops                    1         25h
serviceaccount/kubeapps-operator                            1         24h
NAME                                                            TYPE                                  DATA   AGE
secret/default-token-f4pvj                                      kubernetes.io/service-account-token   3      26h
secret/kubeapps-internal-apprepository-controller-token-tpn7j   kubernetes.io/service-account-token   3      25h
secret/kubeapps-internal-kubeappsapis-token-cgvmg               kubernetes.io/service-account-token   3      25h
secret/kubeapps-internal-kubeops-token-cq2ql                    kubernetes.io/service-account-token   3      25h
secret/kubeapps-operator-token-qfxsx                            kubernetes.io/service-account-token   3      24h
secret/kubeapps-postgresql                                      Opaque                                2      25h
secret/mydokuwiki                                               Opaque                                1      5h12m
secret/sh.helm.release.v1.kubeapps.v1                           helm.sh/release.v1                    1      25h
secret/sh.helm.release.v1.mydokuwiki.v1                         helm.sh/release.v1                    1      5h12m

相关的configMap

[root@k8s-master ~]# k get cm -n kubeapps
NAME                                       DATA   AGE
kubeapps-clusters-config                   1      25h
kubeapps-frontend-config                   2      25h
kubeapps-internal-dashboard-config         5      25h
kubeapps-internal-kubeappsapis-configmap   1      25h

相关的控制器,可以看到postgresql是sts控制器,

[root@k8s-master ~]# k get deploy,ds,sts -n kubeapps
NAME                                                         READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/kubeapps                                     2/2     2            2           25h
deployment.apps/kubeapps-internal-apprepository-controller   1/1     1            1           25h
deployment.apps/kubeapps-internal-dashboard                  2/2     2            2           25h
deployment.apps/kubeapps-internal-kubeappsapis               2/2     2            2           25h
deployment.apps/kubeapps-internal-kubeops                    2/2     2            2           25h
deployment.apps/mydokuwiki                                   1/1     1            1           5h13m
NAME                                           READY   AGE
statefulset.apps/kubeapps-postgresql-primary   1/1     25h
statefulset.apps/kubeapps-postgresql-read      1/1     25h

helm install后的输出,提示要port-forward端口,但,我们这是测试,因此,采用NodePort方式暴露服务端口

[root@k8s-master ~]# helm status kubeapps -n kubeapps
NAME: kubeapps
LAST DEPLOYED: Tue Oct 18 20:05:10 2022
NAMESPACE: kubeapps
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: kubeapps
CHART VERSION: 8.0.9
APP VERSION: 2.4.4** 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.


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
5天前
|
存储 Kubernetes 对象存储
部署DeepSeek但GPU不足,ACK One注册集群助力解决IDC GPU资源不足
借助阿里云ACK One注册集群,充分利用阿里云强大ACS GPU算力,实现DeepSeek推理模型高效部署。
|
7天前
|
Cloud Native Serverless 数据中心
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
ACK One注册集群已正式支持ACS(容器计算服务)算力,为企业的容器化工作负载提供更多选择和更强大的计算能力。
|
10天前
|
存储 Kubernetes 测试技术
企业级LLM推理部署新范式:基于ACK的DeepSeek蒸馏模型生产环境落地指南
本教程演示如何在ACK中使用vLLM框架快速部署DeepSeek R1模型推理服务。
|
11天前
|
存储 人工智能 弹性计算
NVIDIA NIM on ACK:优化生成式AI模型的部署与管理
本文结合NVIDIA NIM和阿里云容器服务,提出了基于ACK的完整服务化管理方案,用于优化生成式AI模型的部署和管理。
|
5天前
|
人工智能 Kubernetes 异构计算
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
本教程演示如何在ACK中多机分布式部署DeepSeek R1满血版。
|
2月前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
178 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
2月前
|
人工智能 缓存 异构计算
云原生AI加速生成式人工智能应用的部署构建
本文探讨了云原生技术背景下,尤其是Kubernetes和容器技术的发展,对模型推理服务带来的挑战与优化策略。文中详细介绍了Knative的弹性扩展机制,包括HPA和CronHPA,以及针对传统弹性扩展“滞后”问题提出的AHPA(高级弹性预测)。此外,文章重点介绍了Fluid项目,它通过分布式缓存优化了模型加载的I/O操作,显著缩短了推理服务的冷启动时间,特别是在处理大规模并发请求时表现出色。通过实际案例,展示了Fluid在vLLM和Qwen模型推理中的应用效果,证明了其在提高模型推理效率和响应速度方面的优势。
云原生AI加速生成式人工智能应用的部署构建
|
2月前
|
存储 Kubernetes 容器
K8S部署nexus
该配置文件定义了Nexus 3的Kubernetes部署,包括PersistentVolumeClaim、Deployment和服务。PVC请求20Gi存储,使用NFS存储类。Deployment配置了一个Nexus 3容器,内存限制为6G,CPU为1000m,并挂载数据卷。Service类型为NodePort,通过30520端口对外提供服务。所有资源位于`nexus`命名空间中。
|
3月前
|
Kubernetes Cloud Native 微服务
云原生入门与实践:Kubernetes的简易部署
云原生技术正改变着现代应用的开发和部署方式。本文将引导你了解云原生的基础概念,并重点介绍如何使用Kubernetes进行容器编排。我们将通过一个简易的示例来展示如何快速启动一个Kubernetes集群,并在其上运行一个简单的应用。无论你是云原生新手还是希望扩展现有知识,本文都将为你提供实用的信息和启发性的见解。
|
3月前
|
敏捷开发 Kubernetes Cloud Native
阿里云云原生技术为企业提供了一套高效、灵活的解决方案,支持跨云部署与管理
在多云环境中,阿里云云原生技术为企业提供了一套高效、灵活的解决方案,支持跨云部署与管理。通过容器化、服务网格等技术,实现了应用的一致性与可移植性,简化了多云环境下的资源管理和服务治理,帮助企业应对复杂的云环境挑战,加速数字化转型。
92 5

热门文章

最新文章