K8s

1 - Helm

Helm是Kubernetes的包管理器,能够通过命令行从仓库中查找包并下载安装。
Helm使用一个名为Chart的资源模板化并打包Kubernetes资源,比如Deployment,Service,ConfigMap,Ingress等。
也就是说,Helm将Kubernetes包定义为一系列清单文件和一些元数据,清单文件就是模板。
Helm实例化包时会给模板中的字段赋值,也就是说可以在安装时使用输入参数来配置这些资源,也可以使用依赖项实现包安装时复用现有图表。

一些概念

  • chart: 一个 Helm 包,也被称作图表,其中包含了运行一个应用所需要的镜像、依赖和资源定义等,还可能包含 Kubernetes 集群中的服务定义。
  • release:在 Kubernetes 集群上运行的 Chart 的一个实例。在同一个集群上,一个 Chart 可以安装很多次,每次安装都会创建一个新的 release。
  • repository:用于发布和存储 Chart 的仓库,Helm客户端通过HTTP协议来访问仓库中Chart的索引文件和压缩包。

官方信息

Quickstart

Best Practices

2 - Helm存储库

Helm存储库可以托管用于管理应用程序的Chart。
Helm提供了一个CLI,用于从给定的Helm存储库里安装应用程序到指定的Kubernetes环境中。
一些众所周知的软件应用程序的各种稳定Helm图表可以在如下链接中找到

3 - 安装Helm

[anliven@anliven ~]$ uname -a
Linux anliven 3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[anliven@anliven ~]$
[anliven@anliven ~]$ cat /etc/system-release
CentOS Linux release 7.8.2003 (Core)
[anliven@anliven ~]$
[anliven@anliven ~]$ wget https://get.helm.sh/helm-v3.5.2-linux-amd64.tar.gz
--2021-02-26 10:41:43--  https://get.helm.sh/helm-v3.5.2-linux-amd64.tar.gz
Resolving get.helm.sh (get.helm.sh)... 152.199.39.108, 2606:2800:247:1cb7:261b:1f9c:2074:3c
Connecting to get.helm.sh (get.helm.sh)|152.199.39.108|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 12365365 (12M) [application/x-tar]
Saving to: ‘helm-v3.5.2-linux-amd64.tar.gz’

100%[=====================================================================================================================================>] 12,365,365  2.10MB/s   in 12s

2021-02-26 10:41:55 (1002 KB/s) - ‘helm-v3.5.2-linux-amd64.tar.gz’ saved [12365365/12365365]

[anliven@anliven ~]$ tar -xvf helm-v3.5.2-linux-amd64.tar.gz
linux-amd64/
linux-amd64/helm
linux-amd64/LICENSE
linux-amd64/README.md
[anliven@anliven ~]$
[anliven@anliven ~]$ ls -l linux-amd64/
total 38936
-rwxr-xr-x 1 anliven anliven 39854080 Feb  4 16:52 helm
-rw-r--r-- 1 anliven anliven    11373 Feb  4 16:54 LICENSE
-rw-r--r-- 1 anliven anliven     3367 Feb  4 16:54 README.md
[anliven@anliven ~]$
[anliven@anliven ~]$ ls -l /usr/local/bin
total 99388
-rw-r--r-- 1 root    root       32768 Oct  9 06:12 docker-compose
-rwxrwxr-x 1 anliven anliven 43003904 Oct 14 22:43 kubectl
-rwxr-xr-x 1 root    root    58733392 Oct 14 22:46 minikube
[anliven@anliven ~]$
[anliven@anliven ~]$ sudo mv linux-amd64/helm /usr/local/bin  # 将helm命令加入到$PATH
[anliven@anliven ~]$
[anliven@anliven ~]$ helm version  # Helm v3与v2变化巨大,没有了tiller
version.BuildInfo{Version:"v3.5.2", GitCommit:"167aac70832d3a384f65f9745335e9fb40169dc2", GitTreeState:"dirty", GoVersion:"go1.15.7"}
[anliven@anliven ~]$
[anliven@anliven ~]$ helm repo remove stable  # 删除默认的源
Error: no repositories configured
[anliven@anliven ~]$
[anliven@anliven ~]$ helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts  # 增加国内镜像源
"stable" has been added to your repositories
[anliven@anliven ~]$
[anliven@anliven ~]$ helm repo update  # 获取最新的charts列表
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈Happy Helming!⎈
[anliven@anliven ~]$
[anliven@anliven ~]$ helm repo list  # 查看helm源添加情况
NAME    URL
stable  https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
[anliven@anliven ~]$

4 - 利用Helm安装应用程序

  • helm install

5 - 利用Helm打包应用程序

将一个包含多个Kubenetes清单文件的应用程序打包为Helm包

  • helm create 生成图表骨架
  • helm install 在本地测试图表
  • helm package 打包
  • helm search 查找图表

6 - 参考信息


Action is the antidote to despair!

欢迎转载和引用,但请在明显处保留原文链接和原作者信息!
本博客内容多为个人工作与学习的记录,少部分内容来自于网络并略有修改,已尽力标明原文链接和转载说明。如有冒犯,即刻删除!

以所舍,求所获,有所依,方所成。
原文地址:https://www.cnblogs.com/anliven/p/12105115.html