Installation and unloading of Helm2 and Helm3

catalogue

About Helm

From Helm2 to Helm3

Helm2

Helm2's problem

Helm3

Helm2 unloading

Installation of Helm2

Deploy client

Deploy tiller

Helm2 common commands

helm lint

Migration from Helm2 to Helm3

Helm3 installation

Binary installation

Configure repo

The helm3 command uses summary records

Information command

Warehouse command

Deployment management commands

chart production command

chart information command

release information command

Plug in command

Helm installing nfs storageclasses

Installing nfs

Installing nfs storageclasses

values.yaml

List of common commands

Helm 3: command for Helm 2 that no longer exists

Helm 3: new commands compared with Helm 2

Helm 3: the command description has changed

Helm 3: other changes

Helm 2 to Helm 3 upgrade

Helm version support policy

Supported versions

Supported version deviations

Reference link:

About Helm

Container deployment on Kubernetes is not easy. docker, environment variables, storage, network and other aspects will be involved. These complex operations can be realized by helm application package management tool to avoid manual operation. Helm official website: Helm

From Helm2 to Helm3

Helm is a very common K8s application package management tool, which is responsible for the installation, deployment and life cycle management of cloud native applications.

Helm2

Helm2 has two main components:

  • Tiller: the server of helm is deployed in a pod in k8s, usually in the Kube system space. It is mainly responsible for deploying helm charts, managing release and communicating with k8s API.

  • Helm Client: it is mainly responsible for pulling the chart package from the shared or private helm charts warehouse, modifying the variable value, and then directly throwing it to tiller.

Helm2's problem

A major problem with Helm2 is that a server needs to be run in the k8s cluster, which requires exposing the tiller port to the outside world, which will lead to security risks.

The tiller introduced in helm 2 is mainly because at that time k8s there was no RBAC mechanism, so the server tiller was introduced.

Later k8s, the functions were improved accordingly, and RBAC and CRD were added, which made tiller redundant.

Helm3

helm3 has only one client and no server, so it is very convenient to install. Just download the corresponding program. There is no need to install helm init.

Compared with helm2, helm3 has several characteristics:

  • tiller removed

  • Distributed helm hub is supported. With it, there is no need to manually add unofficial repo in many cases, such as helm3 search hub < package name >

  • json schema validation for chart input values.

  • You can add tests to helm charts. You can run some tests for deployed applications through helm test < release >.

  • The release name must be specified during deployment. If it is not specified during helm2, it will be automatically generated.

  • When deleting, you don't need -- purge. Deleting is deleting.

Helm2 unloading

helm installation failed. You need to delete tiller. You can directly overwrite the version

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500"># Delete secrets, SA, clusterrolebinding related to tiller</span>
kubectl <span style="color:#3300aa">get</span> <span style="color:#0000cc">-n</span> kube-system secrets,sa,clusterrolebinding <span style="color:#0000cc">-o</span> name|grep tiller|xargs kubectl <span style="color:#0000cc">-n</span> kube-system delete
​
<span style="color:#aa5500"># Delete resources related to helm client</span>
kubectl <span style="color:#3300aa">get</span> all <span style="color:#0000cc">-n</span> kube-system <span style="color:#0000cc">-l</span> <span style="color:#0000ff">app</span><span style="color:#981a1a">=</span>helm <span style="color:#0000cc">-o</span> name|xargs kubectl delete <span style="color:#0000cc">-n</span> kube-system</span></span>

Installation of Helm2

The actual combat environment is kubernetes cluster (version 1.15.3), which is composed of three CentOS 7.7 servers; After deployment, in the process of experiencing Helm, you need to prepare NFS in advance as the network storage space for deploying applications;

Deploy client

ssh login to the server that can perform kubectl operations:

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#3300aa">wget</span> https://get.helm.sh/helm-v2.16.2-linux-amd64.tar.gz
<span style="color:#aa5500"># Decompression:</span>
tar <span style="color:#0000cc">-zxvf</span> helm-v2.16.2-linux-amd64.tar.gz
​
<span style="color:#aa5500"># Put the helm file in the unzipped folder into / usr/local/bin /:</span>
<span style="color:#3300aa">mv</span> linux-amd64/helm /usr/local/bin/
​
<span style="color:#aa5500">#Check the helm version as follows. It can be seen that the client version is 2.16.2. Since the helm server (named tiller) has not been deployed, it displays "could not find tiller":</span>
[root@node1 ~]<span style="color:#aa5500"># helm version</span>
Client: &version.Version{SemVer:<span style="color:#aa1111">"v2.16.2"</span>, GitCommit:<span style="color:#aa1111">"bbdfe5e7803a12bbdf97e94cd847859890cf4050"</span>, GitTreeState:<span style="color:#aa1111">"clean"</span>}
Error: could not <span style="color:#3300aa">find</span> tiller
​</span></span>

Deploy tiller

After the client is deployed, the ServiceAccount and role binding should be established

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500"># Account and role binding</span>
<span style="color:#aa5500"># Create a ServiceAccount named tiller:</span>
kubectl create serviceaccount <span style="color:#0000cc">--namespace</span> kube-system tiller
​
<span style="color:#aa5500"># Bind tiller to the role tiller cluster rule:</span>
kubectl create clusterrolebinding tiller-cluster-rule <span style="color:#0000cc">--clusterrole</span><span style="color:#981a1a">=</span>cluster-admin <span style="color:#0000cc">--serviceaccount</span><span style="color:#981a1a">=</span>kube-system:tiller
​
<span style="color:#aa5500"># helm initialization, in which the image of tiller comes from Alibaba cloud, and the default warehouse is also set to Alibaba cloud:</span>
​
helm init <span style="color:#0000cc">--upgrade</span> <span style="color:#0000cc">-i</span> registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.16.2 <span style="color:#0000cc">--stable-repo-url</span> https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts <span style="color:#0000cc">--service-account</span> tiller
​
<span style="color:#aa5500"># After the console prompts that the helm version is successful, execute helm version again, and the output is as follows. It can be seen that the server of helm has returned the information:</span>
[root@master-1 ~]<span style="color:#aa5500"># helm version</span>
Client: &version.Version{SemVer:<span style="color:#aa1111">"v2.16.2"</span>, GitCommit:<span style="color:#aa1111">"bbdfe5e7803a12bbdf97e94cd847859890cf4050"</span>, GitTreeState:<span style="color:#aa1111">"clean"</span>}
Server: &version.Version{SemVer:<span style="color:#aa1111">"v2.16.2"</span>, GitCommit:<span style="color:#aa1111">"bbdfe5e7803a12bbdf97e94cd847859890cf4050"</span>, GitTreeState:<span style="color:#aa1111">"clean"</span>}</span></span>

Now that helm is installed, let's deploy an application

Helm2 common commands

View version

# helm version

View currently installed charts

#helm list

Query charts

#helm search redis

Install charts

#helm install --name redis --namespaces prod bitnami/redis

View charts status

#helm status redis

Delete charts

#helm delete --purge redis

Add repo

#helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

#helm repo add --username admin --password password myharbor https://harbor.qing.cn/chartrepo/charts

Update repo warehouse resources

#helm repo update

Create charts

#helm create helm_charts

Test charts syntax

helm lint

Pack charts

#cd helm_charts && helm package ./

View the generated yaml file

#helm template helm_charts-0.1.1.tgz

Update image

#helm upgrade --set image.tag='v2019-05-09-18-48-40' study-api-en-oral myharbor/study-api-en-oral

Rollback relase

#helm hist study-api-en-oral

#helm rollback study-api-en-oral 4

Migration from Helm2 to Helm3

Helm officially provides a small public initiative to help us migrate the deployed helm2 applications to helm3.

  • Install plug-ins

<span style="background-color:#f8f8f8"><span style="color:#333333">$ helm3 plugin install https://github.com/helm/helm-2to3</span></span>
  • Migrate the configuration of helm2, such as warehouse

<span style="background-color:#f8f8f8"><span style="color:#333333">$ helm3 2to3 move config</span></span>
  • Migrate helm2 deployed applications (ensure helm2 and helm3 are installed on the same machine at the same time)

<span style="background-color:#f8f8f8"><span style="color:#333333">$ helm3 2to3 convert <release-name> --delete-v2-releases</span></span>

Helm3 installation

Binary installation

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500"># Get the latest binary installation package according to the operating system https://github.com/helm/helm/releases        </ span>
<span style="color:#3300aa">wget</span> https://get.helm.sh/helm-v3.3.1-linux-amd64.tar.gz       
<span style="color:#aa5500"># Since the helm package is abroad, I pulled Tencent cloud cos through ss. In China, I can access it through the following address: https://download.osichina.net/tools/k8s/helm/helm-v3.3.1-linux-amd64.tar.gz        </ span>
tar <span style="color:#0000cc">-zxvf</span> helm-v3.3.1-linux-amd64.tar.gz       
<span style="color:#3300aa">cp</span> linux-amd64/helm /usr/local/bin/</span></span>

For other installation of helm, please refer to the official website: Helm | Installing Helm

Note: the helm client needs to be downloaded to the server that has kubectl installed and can operate kubernetes normally through kubectl, otherwise helm will not be available

Configure repo

<span style="background-color:#f8f8f8"><span style="color:#333333">helm repo add  elastic    https://helm.elastic.co       
helm repo add  gitlab     https://charts.gitlab.io       
helm repo add  harbor     https://helm.goharbor.io       
helm repo add  bitnami    https://charts.bitnami.com/bitnami       
helm repo add  incubator  https://kubernetes-charts-incubator.storage.googleapis.com       
helm repo add  stable     https://kubernetes-charts.storage.googleapis.com       
<span style="color:#aa5500"># Add domestic warehouse       </ span>
helm repo add stable http://mirror.azure.cn/kubernetes/charts       
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts       
helm repo update       
helm repo list       </span></span>

The helm3 command uses summary records

However, there are many helm commands and many parameters. It's certainly not possible to rely on memory. You won't forget it if you don't use it for a few months

This article is not only a review of helm commands, but also a structured summary of these commands

In this article, nginx chart is taken as an example. Please pay attention to the replacement when using it

Information command

Commands containing helm's own information

View environment information

<span style="background-color:#f8f8f8"><span style="color:#333333">helm env </span></span>

View version information

<span style="background-color:#f8f8f8"><span style="color:#333333">helm version</span></span>

Warehouse command

Commands related to warehouse operation are often used

Find software

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">helm</span> <span style="color:#000000">search</span> <span style="color:#000000">repo</span> <span style="color:#000000">nginx</span> 
<span style="color:#000000">helm</span> <span style="color:#000000">search</span> <span style="color:#000000">hub</span>  <span style="color:#000000">nginx</span> </span></span>

Add a warehouse

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">helm</span> <span style="color:#000000">repo</span> <span style="color:#000000">add</span> <span style="color:#000000">bitnami</span> <span style="color:#000000">https</span>:<span style="color:#aa5500">//charts.bitnami.com/bitnami</span></span></span>

View the list of existing warehouses

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">helm</span> <span style="color:#000000">repo</span> <span style="color:#000000">list</span> </span></span>

Update warehouse resources

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">helm</span> <span style="color:#000000">repo</span> <span style="color:#000000">update</span></span></span>

Delete a warehouse

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">helm</span> <span style="color:#000000">repo</span> <span style="color:#770088">delete</span> <span style="color:#000000">bitnami</span></span></span>

Create warehouse index

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">helm</span> <span style="color:#000000">repo</span> <span style="color:#000000">index</span> <span style="color:#981a1a">/</span><span style="color:#000000">root</span><span style="color:#981a1a">/</span><span style="color:#000000">helm</span><span style="color:#981a1a">/</span><span style="color:#000000">repo</span></span></span>

Deployment management commands

This part includes a series of operations such as deploying applications and managing applications, which are frequently used

Deploy chart and specify the version

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">helm</span> <span style="color:#000000">install</span> <span style="color:#000000">center</span><span style="color:#981a1a">-</span><span style="color:#000000">nginx</span> <span style="color:#000000">bitnami</span><span style="color:#981a1a">/</span><span style="color:#000000">nginx</span> <span style="color:#981a1a">--</span><span style="color:#000000">version</span> <span style="color:#116644">9.4.1</span></span></span>

Unload chart

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">helm</span> <span style="color:#000000">uninstall</span> <span style="color:#000000">center</span><span style="color:#981a1a">-</span><span style="color:#000000">nginx</span></span></span>

chart status view

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">helm</span> <span style="color:#000000">status</span> <span style="color:#000000">center</span><span style="color:#981a1a">-</span><span style="color:#000000">nginx</span></span></span>

View chart list

-Table A all namespace s

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">helm</span> <span style="color:#000000">list</span> <span style="color:#981a1a">-</span><span style="color:#000000">A</span> </span></span>

chart deployment history

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">helm</span> <span style="color:#000000">history</span> <span style="color:#000000">center</span><span style="color:#981a1a">-</span><span style="color:#000000">nginx</span></span></span>

chart update

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">helm</span> <span style="color:#000000">upgrade</span> <span style="color:#981a1a">--</span><span style="color:#000000">set</span> <span style="color:#000000">image</span>.<span style="color:#000000">tag</span><span style="color:#981a1a">=</span><span style="color:#000000">nginx</span><span style="color:#116644">.18</span> <span style="color:#000000">center</span><span style="color:#981a1a">-</span><span style="color:#000000">nginx</span> <span style="color:#000000">bitnami</span><span style="color:#981a1a">/</span><span style="color:#000000">nginx</span></span></span>

chart rollback

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">helm</span> <span style="color:#000000">rollback</span> <span style="color:#000000">center</span><span style="color:#981a1a">-</span><span style="color:#000000">nginx</span> <span style="color:#116644">2</span></span></span>

chart production command

This part includes the download of chart and the commands related to making chart package

Download chart package

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">helm</span> <span style="color:#000000">pull</span> <span style="color:#000000">bitnami</span><span style="color:#981a1a">/</span><span style="color:#000000">nginx</span></span></span>

Check chart package syntax

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">helm</span> <span style="color:#000000">lint</span> </span></span>

Render mode test chart package

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">helm</span> <span style="color:#000000">install</span> <span style="color:#981a1a">--</span><span style="color:#000000">debug</span> <span style="color:#981a1a">--</span><span style="color:#000000">dry</span><span style="color:#981a1a">-</span><span style="color:#000000">run</span> <span style="color:#000000">testchart</span> .</span></span>

Create chart package

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">helm</span> <span style="color:#000000">create</span> <span style="color:#000000">testchart</span></span></span>

Upload chart package to private server

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">helm</span> <span style="color:#000000">push</span> <span style="color:#000000">nginx</span><span style="color:#981a1a">-</span><span style="color:#116644">9.4.1</span>.<span style="color:#000000">tgz</span> <span style="color:#000000">chartmuseum</span> <span style="color:#981a1a">--</span><span style="color:#000000">debug</span></span></span>

chart information command

chart is a resource collection and a format in helm. We can view relevant information before installation and use

Because the readme values all in helm show is of little value and too much information is displayed, it is not recorded here and rarely used. Because there are too many displayed contents, it is better to read it on the page

View chart package information

Display the version, source code and other information of chart package

<span style="background-color:#f8f8f8"><span style="color:#333333">helm show chart bitnami/nginx</span></span>

release information command

The concept of release in helm is a deployed chart (excluding whether k8s is successfully deployed). Such commands are misused after deployment because the information displayed by such commands is also implemented by other commands, and all of them are rarely used

View release notes

<span style="background-color:#f8f8f8"><span style="color:#333333">helm get notes center-nginx</span></span>

View the value modified by release

If it has not been modified after install, it is null

<span style="background-color:#f8f8f8"><span style="color:#333333">helm get values center-nginx</span></span>

View release hook

<span style="background-color:#f8f8f8"><span style="color:#333333">helm get hooks center-nginx</span></span>

View manifest configuration file

The manifest configuration file is the resource configuration file in kubernetes, with the same name

<span style="background-color:#f8f8f8"><span style="color:#333333">helm get manifest center-nginx</span></span>

View all release information

This is the aggregation of the values of the above four commands

<span style="background-color:#f8f8f8"><span style="color:#333333">helm get all center-nginx</span></span>

Plug in command

This section lists plug-in commands, which are rarely used

Install plug-ins

<span style="background-color:#f8f8f8"><span style="color:#333333">helm plugin install https://github.com/chartmuseum/helm-push.git</span></span>

Plug in list

<span style="background-color:#f8f8f8"><span style="color:#333333">helm plugin list</span></span>

Uninstall plug-in

<span style="background-color:#f8f8f8"><span style="color:#333333">helm plugin pluginName</span></span>

Update plug-in

<span style="background-color:#f8f8f8"><span style="color:#333333">helm plugin update pluginName</span></span>

Helm installing nfs storageclasses

Installing nfs

<span style="background-color:#f8f8f8"><span style="color:#333333">yum -y install epel-release       
yum -y install nfs-utils rpcbind       
systemctl enable rpcbind nfs-server nfs-lock nfs-idmap       
systemctl start rpcbind nfs-server nfs-lock nfs-idmap       
# 172.18.4. * all IP addresses can access nfs       
echo "/data 172.18.4.*(rw,sync,no_root_squash)" >  /etc/exports       
exportfs -a       </span></span>

Installing nfs storageclasses

<span style="background-color:#f8f8f8"><span style="color:#333333">helm pull stable/nfs-client-provisioner --untar       
cd nfs-client-provisioner/
vim values.yaml       
helm install nfs -f values.yaml .</span></span>

values.yaml

<span style="background-color:#f8f8f8"><span style="color:#333333">...
nfs:
  server: <span style="color:#116644">172</span>.18.4.202       
  path: /data/nfs       
  mountOptions:
...</span></span>

There are some differences between Helm 2 and Helm 3 in use. In addition to removing Tiller in Helm 3, some commonly used commands have also changed, which are briefly sorted out in this article.

List of common commands

commandHelm 2Helm 3Command description differencesCommand description
createhavehavenothingcreate a new chart with the given name
deletehavenothing-given a release name, delete the release from Kubernetes
dependencyhavehavenothingmanage a chart's dependencies
fetchhavenothing-download a chart from a repository and (optionally) unpack it in local directory
gethavehavehavedownload a named release
historyhavehavenothingfetch release history
homehavenothing-displays the location of HELM_HOME
inithavenothing-initialize Helm on both client and server
inspecthavenothing-inspect a chart
installhavehavehaveinstall a chart archive
linthavehavenothingexamines a chart for possible issues
listhavehavenothinglist releases
packagehavehavenothingpackage a chart directory into a chart archive
pluginhavehavehaveadd, list, or remove Helm plugins
repohavehavenothingadd, list, remove, update, and index chart repositories
resethavenothing-uninstalls Tiller from a cluster
rollbackhavehavenothingroll back a release to a previous revision
searchhavehavenothingsearch for a keyword in charts
servehavenothing-start a local http web server
statushavehavenothingdisplays the status of the named release
templatehavehavenothinglocally render templates
testhavehavehavetest a release
upgradehavehavenothingupgrade a release
verifyhavehavenothingverify that a chart at the given path has been signed and is valid
versionhavehavehaveprint the client/server version information
envnothinghave-Helm client environment information
helpnothinghave-Help about any command
pullnothinghave-download a chart from a repository and (optionally) unpack it in local directory
shownothinghave-show information of a chart
uninstallnothinghave-uninstall a release

Helm 3: command for Helm 2 that no longer exists

In the previous article example, we found that helm init no longer exists in Helm 3. Similarly, there are 7 commands in Helm 3, which are deleted, renamed or enhanced. For example, due to the removal of Tiller, the reset command has no meaning. At the same time, init has only the functions that need to be set by the client, so it is removed. In addition, such as the fetch command, the pull command is provided in Helm 3 instead. Originally, the home command was used to display HELM_HOME environment variable, and the env command provided in Helm 3 can display all environment variable information, which is replaced with enhanced functions. However, in any case, the following seven commands cannot be used directly in Helm 3.

commandHelm 2Helm 3Command description
deletehavenothinggiven a release name, delete the release from Kubernetes
fetchhavenothingdownload a chart from a repository and (optionally) unpack it in local directory
homehavenothingdisplays the location of HELM_HOME
inithavenothinginitialize Helm on both client and server
inspecthavenothinginspect a chart
resethavenothinguninstalls Tiller from a cluster
servehavenothingstart a local http web server

Helm 3: new commands compared with Helm 2

Compared with Helm 2, from the information obtained from helm --help, we can see that the following five commands are newly added in Helm 3.

commandHelm 2Helm 3Command description
envnothinghaveHelm client environment information
helpnothinghaveHelp about any command
pullnothinghavedownload a chart from a repository and (optionally) unpack it in local directory
shownothinghaveshow information of a chart
uninstallnothinghaveuninstall a release

A little analysis will reveal the following facts:

  • env is an enhancement of the deleted command home

  • pull is a replacement for the deleted command fetch

  • show is the replacement of the deleted command inspect

  • The help command itself can be used in the Helm 2 era, but it is not displayed in helm --help, which is a self-contained enhancement of the document

  • uninstall is a feature enhancement

Helm 3: the command description has changed

Due to the removal of Tiller, the expression of the version display command helm version has changed from displaying the version information of the client/server to displaying the version information of the client. Similarly, there are five commands that have changed. Whether they are document changes or functional reflection will be further explained through examples in subsequent articles.

commandHelm 2Helm 3Command description differencesHelm 2 command descriptionHelm 3 command description
gethavehavehavedownload a named releasedownload extended information of a named release
installhavehavehaveinstall a chart archiveinstall a chart
pluginhavehavehaveadd, list, or remove Helm pluginsinstall, list, or uninstall Helm plugins
testhavehavehavetest a releaserun tests for a release
versionhavehavehaveprint the client/server version informationprint the client version information

Helm 3: other changes

This is not to say that helm --help does not change, and there is no difference in use. For example, repo and install have changed in use, but they are not provided in the help information provided by helm itself. These will be further explained in the use of subsequent examples.

Helm 2 to Helm 3 upgrade

helm also provides a portable plug-in. For details, see:

The Helm command used for comparison in this paper is taken as Helm 2.8.2 and Helm 3.0.0.

Helm version support policy

This document describes the maximum version deviation supported between Helm and Kubernetes.

Supported versions

The version of Helm is described by x.y.z. x is the main version, y is the secondary version, and Z is the patch version. Follow Semantic version Terminology.

The Helm project maintains a release branch for the most recent minor version. Appropriate fixes, including security fixes, cherry pick from the release branch, depending on severity. See for more details Helm version policy.

Supported version deviations

When a new version of Helm is released, it is compiled for a specific minor version of Kubernetes. For example, Helm 3.0.0 interacts with the 1.16.2 client version of Kubernetes, which can be compatible with Kubernetes 1.16 at one time.

Starting with Helm 3, Helm compiles assuming compatibility with Kubernetes for the n-3 version. Since Helm 2 supports minor changes to Kubernetes a little more strictly, it is assumed to be compatible with the n-1 version of Kubernetes.

For example, if you are using a Helm 3 version compiled for the Kubernetes 1.17 client API version, it should be safe to use Kubernetes 1.17, 1.16, 1.15, and 1.14. If you are using a Helm 2 version compiled for the Kubernetes 1.16 client API version, it should be safe to use Kubernetes 1.16 and 1.15.

Helm is not recommended for higher versions of Kubernetes than the version on which it is compiled, because helm does not guarantee any forward compatibility.

If you choose a Helm that is not supported by the Kubernetes version, you need to do so at your own risk.

Please refer to the following table to determine which version of Helm is compatible with your cluster.

Helm versionSupported Kubernetes versions
3.7.x1.22.x - 1.19.x
3.6.x1.21.x - 1.18.x
3.5.x1.20.x - 1.17.x
3.4.x1.19.x - 1.16.x
3.3.x1.18.x - 1.15.x
3.2.x1.18.x - 1.15.x
3.1.x1.17.x - 1.14.x
3.0.x1.16.x - 1.13.x
2.16.x1.16.x - 1.15.x
2.15.x1.15.x - 1.14.x
2.14.x1.14.x - 1.13.x
2.13.x1.13.x - 1.12.x
2.12.x1.12.x - 1.11.x
2.11.x1.11.x - 1.10.x
2.10.x1.10.x - 1.9.x
2.9.x1.10.x - 1.9.x
2.8.x1.9.x - 1.8.x
2.7.x1.8.x - 1.7.x
2.6.x1.7.x - 1.6.x
2.5.x1.6.x - 1.5.x
2.4.x1.6.x - 1.5.x
2.3.x1.5.x - 1.4.x
2.2.x1.5.x - 1.4.x
2.1.x1.5.x - 1.4.x
2.0.x1.4.x - 1.3.x

Reference link:

  1. helm installation, use and practice - cloud + community - Tencent cloud

  2. How To Install Helm 3 And Configure It On Kubernetes

  3. Installation and use of Helm · advanced manual from Docker to Kubernetes

  4. https://github.com/helm/helm-2to3

Tags: Docker Kubernetes Container helm

Posted on Sun, 24 Oct 2021 21:32:38 -0400 by thiggins09