Centos 安装 helm3和使用
helm 是基于 kubernetes 的包管理器。它之于 kubernetes 就如 yum 之于 centos,pip 之于 python,npm 之于 javascript那helm的引入对于管理集群有哪些帮助呢?可体现在基础运维建设及业务应用两方面基础设施,更方便地部署与升级基础设施,如gitlab,prometheus,grafana,ES等业务应用,更方便地部署,管理与升级公司内部应用
helm 是基于 kubernetes 的包管理器。它之于 kubernetes 就如 yum 之于 centos,pip 之于 python,npm 之于 javascript
那
helm
的引入对于管理集群有哪些帮助呢?可体现在基础运维建设及业务应用两方面
基础设施,更方便地部署与升级基础设施,如
gitlab
,prometheus
,grafana
,ES
等业务应用,更方便地部署,管理与升级公司内部应用,为公司内部的项目配置 Chart,使用
helm
结合 CI,在 k8s 中部署应用如一行命令般简单让开发人员写
k8s
资源配置文件是不现实的
不是所有开发都了解 k8s,或者说很少,不了解 k8s 很难写资源配置部署文件
开发的主要职能还是在业务上
于是
helm
应时而出,运维通过helm
配置好资源文件模板,然后交给开发填参数。
Helm
Helm 是一个命令行下的客户端工具。主要用于 Kubernetes 应用程序 Chart 的创建、打包、发布以及创建和管理本地和远程的 Chart 仓库。
Tiller(helm3已经没有了)
Tiller 是 Helm 的服务端,部署在 Kubernetes 集群中。Tiller 用于接收 Helm 的请求,并根据 Chart 生成 Kubernetes 的部署文件( Helm 称为 Release ),然后提交给 Kubernetes 创建应用。Tiller 还提供了 Release 的升级、删除、回滚等一系列功能。
Chart
Helm 的软件包,采用 TAR 格式。类似于 APT 的 DEB 包或者 YUM 的 RPM 包,其包含了一组定义 Kubernetes 资源相关的 YAML 文件。
Repoistory
Helm 的软件仓库,Repository 本质上是一个 Web 服务器,该服务器保存了一系列的 Chart 软件包以供用户下载,并且提供了一个该 Repository 的 Chart 包的清单文件以供查询。Helm 可以同时管理多个不同的 Repository。https://blog.csdn.net/Michaelwubo/article/details/108703681
Release
使用
helm install
命令在 Kubernetes 集群中部署的 Chart 称为 Release。
Helm 有两个重要得概念:chart 和 release
chart :是创建一个应用的信息集合,包括各种 kubernetes 对象得配置模板、参数定义、依赖关系、文档说明等,可以将 chart 想象成 yum 中的软件安装包
release :是 chart 的运行实例,代表了一个正在运行的应用。当 chart 被安装到 kubernetes 集群,就会生成一个 release,chart 能够多次安装到同一个集群,但是只会有一个 release
1、下载
[root@localhost ingress]# wget https://get.helm.sh/helm-v3.1.0-linux-amd64.tar.gz
2、解压
tar -zxvf helm-v3.2.0-linux-amd64.tar.gz
3、拷贝
cp linux-amd64/helm /usr/local/bin
4、验证
[root@localhost ingress]# helm version
version.BuildInfo{Version:"v3.1.0", GitCommit:"b29d20baf09943e134c2fa5e1e1cab3bf93315fa", GitTreeState:"clean", GoVersion:"go1.13.7"}
5、添加 chart 源
[root@localhost ingress]# helm repo add aliyuncs https://apphub.aliyuncs.com
6、查询当前集群有哪些 chart 库
[root@localhost ingress]# helm repo list
NAME URL
aliyuncs https://apphub.aliyuncs.com
7、查询某个库 有哪些安装程序
[root@localhost ingress]# helm search repo aliyuncs | head -5
NAME CHART VERSION APP VERSION DESCRIPTION
aliyuncs/admin-mongo 0.1.0 1 MongoDB管理工具(web gui)
aliyuncs/aerospike 0.3.2 v4.5.0.5 A Helm chart for Aerospike in Kubernetes
aliyuncs/airflow 4.3.3 1.10.9 Apache Airflow is a platform to programmaticall...
aliyuncs/ambassador 5.3.0 0.86.1 A Helm chart for Datawire Ambassador
8、查找安装程序
[root@localhost ingress]# helm search repo nginx
NAME CHART VERSION APP VERSION DESCRIPTION
aliyuncs/nginx 5.1.5 1.16.1 Chart for the nginx server
aliyuncs/nginx-ingress 1.30.3 0.28.0 An nginx Ingress controller that uses ConfigMap...
aliyuncs/nginx-ingress-controller 5.3.4 0.29.0 Chart for the nginx Ingress controller
aliyuncs/nginx-lego 0.3.1 Chart for nginx-ingress-controller and kube-lego
aliyuncs/nginx-php 1.0.0 nginx-1.10.3_php-7.0 Chart for the nginx php server
9、安装一个程序
helm install nginx liyuncs/nginx
10、查询 svc
[root@master1 ~]# kubectl get svc -n default
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 116m
nginx LoadBalancer 10.99.247.71 <pending> 80:30300/TCP,443:32617/TCP 45s
11、访问 集群
[root@master1 ~]# curl http://10.99.247.71
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
.......
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
12、查看安装的应用
[root@master1 ~]# helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
nginx default 1 2020-12-15 11:48:13.181211885 +0800 CST deployed nginx-5.1.5 1.16.1
13、删除一个应用
helm uninstall nginx
更多推荐
所有评论(0)