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

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 云原生|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搭建和管理企业级网站应用
目录
相关文章
|
30天前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
118 60
|
1月前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
181 62
|
3天前
|
运维 Kubernetes Cloud Native
Kubernetes云原生架构深度解析与实践指南####
本文深入探讨了Kubernetes作为领先的云原生应用编排平台,其设计理念、核心组件及高级特性。通过剖析Kubernetes的工作原理,结合具体案例分析,为读者呈现如何在实际项目中高效部署、管理和扩展容器化应用的策略与技巧。文章还涵盖了服务发现、负载均衡、配置管理、自动化伸缩等关键议题,旨在帮助开发者和运维人员掌握利用Kubernetes构建健壮、可伸缩的云原生生态系统的能力。 ####
|
4天前
|
存储 运维 Kubernetes
云原生之旅:Kubernetes的弹性与可扩展性探索
【10月更文挑战第32天】在云计算的浪潮中,云原生技术以其独特的魅力成为开发者的新宠。本文将深入探讨Kubernetes如何通过其弹性和可扩展性,助力应用在复杂环境中稳健运行。我们将从基础架构出发,逐步揭示Kubernetes集群管理、服务发现、存储机制及自动扩缩容等核心功能,旨在为读者呈现一个全景式的云原生平台视图。
14 1
|
9天前
|
Kubernetes 负载均衡 Cloud Native
云原生应用:Kubernetes在容器编排中的实践与挑战
【10月更文挑战第27天】Kubernetes(简称K8s)是云原生应用的核心容器编排平台,提供自动化、扩展和管理容器化应用的能力。本文介绍Kubernetes的基本概念、安装配置、核心组件(如Pod和Deployment)、服务发现与负载均衡、网络配置及安全性挑战,帮助读者理解和实践Kubernetes在容器编排中的应用。
35 4
|
10天前
|
Kubernetes 监控 Cloud Native
云原生应用:Kubernetes在容器编排中的实践与挑战
【10月更文挑战第26天】随着云计算技术的发展,容器化成为现代应用部署的核心趋势。Kubernetes(K8s)作为容器编排领域的佼佼者,以其强大的可扩展性和自动化能力,为开发者提供了高效管理和部署容器化应用的平台。本文将详细介绍Kubernetes的基本概念、核心组件、实践过程及面临的挑战,帮助读者更好地理解和应用这一技术。
37 3
|
14天前
|
Kubernetes Cloud Native 开发者
云原生技术入门:Kubernetes和Docker的协作之旅
【10月更文挑战第22天】在数字化转型的浪潮中,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,引领读者步入云原生的世界,着重介绍Kubernetes和Docker如何携手打造弹性、可扩展的云环境。我们将从基础概念入手,逐步深入到它们在实际场景中的应用,以及如何简化部署和管理过程。文章不仅为初学者提供入门指南,还为有一定基础的开发者提供实践参考,共同探索云原生技术的无限可能。
24 3
|
12天前
|
运维 Kubernetes Cloud Native
云原生入门:Kubernetes和容器化的未来
【10月更文挑战第23天】本文将带你走进云原生的世界,探索Kubernetes如何成为现代软件部署的心脏。我们将一起揭开容器化技术的神秘面纱,了解它如何改变软件开发和运维的方式。通过实际的代码示例,你将看到理论与实践的结合,感受到云原生技术带来的革命性影响。无论你是初学者还是有经验的开发者,这篇文章都将为你开启一段新的旅程。让我们一起踏上这段探索之旅,解锁云原生技术的力量吧!
|
20天前
|
Kubernetes Cloud Native 开发者
探秘云原生计算:Kubernetes与Docker的协同进化
在这个快节奏的数字时代,云原生技术以其灵活性和可扩展性成为了开发者们的新宠。本文将带你深入了解Kubernetes和Docker如何共同塑造现代云计算的架构,以及它们如何帮助企业构建更加敏捷和高效的IT基础设施。
|
27天前
|
Kubernetes 安全 Cloud Native
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
本文介绍了云原生环境下Kubernetes集群的安全问题及攻击方法。首先概述了云环境下的新型攻击路径,如通过虚拟机攻击云管理平台、容器逃逸控制宿主机等。接着详细解释了Kubernetes集群架构,并列举了常见组件的默认端口及其安全隐患。文章通过具体案例演示了API Server 8080和6443端口未授权访问的攻击过程,以及Kubelet 10250端口未授权访问的利用方法,展示了如何通过这些漏洞实现权限提升和横向渗透。
121 0
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问

热门文章

最新文章

下一篇
无影云桌面