k8s应用管理-helm

2021/03/30

k8s应用管理-helm

参考资料

1.helm简介

Helmk是k8s资源的包管理工具,Helm之于Kubernetes好比yum之于RHEL,或者apt-get之于Ubuntu。Helm使用Chart帮助管理应用,Chart就好像RPM一样,里面描述了应用及其依赖关系。

Helm把Kubernetes资源(比如deployments、services或 ingress等)打包到一个chart中,而chart被保存到chart仓库。通过chart仓库可用来存储和分享chart。Helm使发布可配置,支持发布应用配置的版本管理,简化了Kubernetes部署应用的版本控制、打包、发布、删除、更新等操作。

主要概念:

  • helm客户端:命令行客户端工具,负责管理charts、reprepository和release。它通过gPRC API(使用kubectl port-forward将tiller的端口映射到本地,然后再通过映射后的端口跟tiller通信)向tiller发送请求
  • tiller服务端:tiller接收来自helm客户端的请求,并把相关资源的操作发送到Kubernetes,负责管理(安装、查询、升级或删除等)和跟踪Kubernetes资源。为了方便管理,tiller把release的相关信息保存在kubernetes的ConfigMap中。 tiller对外暴露gRPC API,供helm客户端调用
  • Chart:Helm管理的kubernetes资源包称之为Chart,Chart是一个结构相对固定的文件目录,是应用的描述,Chart之间可相互依赖
  • Repository:Helm package存储仓库
  • Release:Chart部署之后的实例,每一次helm install运行后就会生成一个新的release,在k8s中创建出真是运行的资源对象

Helm引入是为了解决哪些问题

  • 1.把yaml作为整体管理
  • 2.实现yaml高效服用
  • 3.使用helm进行应用级别的版本管理

2.helm安装

## 安装Helm包管理器
$ wget https://get.helm.sh/helm-v3.6.3-linux-amd64.tar.gz
$ tar -zxvf helm-v3.6.3-linux-amd64.tar.gz
$ sudo mv linux-amd64/helm /usr/local/bin/helm

## 验证:
$ helm version 

3.使用helm安装组件示例-ingress-nginx

$ helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
$ helm repo update
$ helm pull ingress-nginx/ingress-nginx
$ tar -zxvf ingress-nginx-4.0.6.tgz

## 修改value参数
$ vim ingress-nginx/values.yaml

## 创建命名空间
$ kubectl create namespace ingress-nginx

## 安装,./ingress-nginx为解压后的包目录
$ helm install ingress-nginx ./ingress-nginx -n ingress-nginx

## 查看安装状态
$ kubectl get po -n ingress-nginx

## 卸载
$ helm uninstall ingress-nginx -n ingress-nginx

问题记录

Post Directory

扫码关注公众号:暂无公众号
发送 290992
即可立即永久解锁本站全部文章