helm3 instruction

版本对比

helm3 与helm2对比,官方文档。

https://helm.sh/docs/topics/v2_v3_migration/

官方

官方网站 https://helm.sh/

https://helm.sh/

github https://github.com/helm/helm/releases

https://github.com/helm/helm/releases

部署

官网部署文档 https://helm.sh/docs/intro/install/

https://helm.sh/docs/intro/install/

解压

[root@master01 ~]# tar xf helm-v3.6.3-linux-386.tar.gz

拷贝

[root@master01 ~]# cd linux-386/
[root@master01 linux-386]# ls
helm  LICENSE  README.md
[root@master01 linux-386]#
[root@master01 linux-386]# cp helm /usr/bin/

更新

既然下载了,可以不进行更新

[root@master01 ~]# curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
[root@master01 linux-386]# ls
get_helm.sh  helm  LICENSE  README.md
[root@master01 linux-386]# chmod 700 get_helm.sh 
[root@master01 linux-386]#
[root@master01 linux-386]# ./get_helm.sh 
Downloading https://get.helm.sh/helm-v3.6.3-linux-amd64.tar.gz
Verifying checksum... Done.
Preparing to install helm into /usr/local/bin
helm installed into /usr/local/bin/helm
[root@master01 linux-386]# 

helm 常用命令

helm version

[root@master01 ~]# helm version
version.BuildInfo{Version:"v3.6.3", GitCommit:"d506314abfb5d21419df8c7e7e68012379db2354", GitTreeState:"clean", GoVersion:"go1.16.5"}
[root@master01 ~]# 

helm env

[root@master01 ~]# helm env
HELM_BIN="helm"
HELM_CACHE_HOME="/root/.cache/helm"
HELM_CONFIG_HOME="/root/.config/helm"
HELM_DATA_HOME="/root/.local/share/helm"
HELM_DEBUG="false"
HELM_KUBEAPISERVER=""
HELM_KUBEASGROUPS=""
HELM_KUBEASUSER=""
HELM_KUBECAFILE=""
HELM_KUBECONTEXT=""
HELM_KUBETOKEN=""
HELM_MAX_HISTORY="10"
HELM_NAMESPACE="default"
HELM_PLUGINS="/root/.local/share/helm/plugins"
HELM_REGISTRY_CONFIG="/root/.config/helm/registry.json"
HELM_REPOSITORY_CACHE="/root/.cache/helm/repository"
HELM_REPOSITORY_CONFIG="/root/.config/helm/repositories.yaml"
[root@master01 ~]# 

添加仓库

[root@master01 ~]# helm repo add bitnami https://charts.bitnami.com/bitnami
"bitnami" has been added to your repositories
[root@master01 ~]# 

查看仓库列表

[root@master01 ~]# helm repo list
NAME    URL                               
bitnami https://charts.bitnami.com/bitnami
[root@master01 ~]#

更新仓库

[root@master01 ~]# helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "bitnami" chart repository
Update Complete. ⎈Happy Helming!⎈
[root@master01 ~]# 
[root@master01 ~]# helm search repo bitnami
NAME                                            CHART VERSION   APP VERSION     DESCRIPTION                                       
bitnami/bitnami-common                          0.0.9           0.0.9           DEPRECATED Chart with custom templates used in ...
bitnami/airflow                                 10.2.7          2.1.2           Apache Airflow is a platform to programmaticall...
bitnami/apache                                  8.5.10          2.4.48          Chart for Apache HTTP Server                      
bitnami/argo-cd                                 1.0.0           2.0.5           Declarative, GitOps continuous delivery tool fo...
#... and many more

部署应用

[root@master01 ~]# helm install bitnami/zookeeper --generate-name
NAME: zookeeper-1628066005
LAST DEPLOYED: Wed Aug  4 16:33:28 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
** Please be patient while the chart is being deployed **

ZooKeeper can be accessed via port 2181 on the following DNS name from within your cluster:

    zookeeper-1628066005.default.svc.cluster.local

To connect to your ZooKeeper server run the following commands:

    export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=zookeeper,app.kubernetes.io/instance=zookeeper-1628066005,app.kubernetes.io/component=zookeeper" -o jsonpath="{.items[0].metadata.name}")
    kubectl exec -it $POD_NAME -- zkCli.sh

To connect to your ZooKeeper server from outside the cluster execute the following commands:

    kubectl port-forward --namespace default svc/zookeeper-1628066005 2181:2181 &
    zkCli.sh 127.0.0.1:2181
[root@master01 ~]# 

查看应用列表

[root@master01 ~]# helm list
NAME                    NAMESPACE   REVISION    UPDATED                                 STATUS      CHART           APP VERSION
zookeeper-1628066005    default     1           2021-08-04 16:33:28.144386149 +0800 CST deployed    zookeeper-7.1.1 3.7.0      
[root@master01 ~]# 

查看SVC

[root@master01 ~]# ks
NAME                            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE     SELECTOR
kubernetes                      ClusterIP   10.96.0.1        <none>        443/TCP                      5d      <none>
nginx                           ClusterIP   10.101.229.167   <none>        443/TCP                      4d16h   io.kompose.service=nginx
registry                        ClusterIP   10.100.47.25     <none>        5000/TCP                     4d16h   io.kompose.service=registry
zookeeper-1628066005            ClusterIP   10.103.108.218   <none>        2181/TCP,2888/TCP,3888/TCP   61s     app.kubernetes.io/component=zookeeper,app.kubernetes.io/instance=zookeeper-1628066005,app.kubernetes.io/name=zookeeper
zookeeper-1628066005-headless   ClusterIP   None             <none>        2181/TCP,2888/TCP,3888/TCP   61s     app.kubernetes.io/component=zookeeper,app.kubernetes.io/instance=zookeeper-1628066005,app.kubernetes.io/name=zookeeper
[root@master01 ~]# 

查看应用状态

[root@master01 ~]# helm status zookeeper-1628066253
NAME: zookeeper-1628066253
LAST DEPLOYED: Wed Aug  4 16:37:36 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
** Please be patient while the chart is being deployed **

ZooKeeper can be accessed via port 2181 on the following DNS name from within your cluster:

    zookeeper-1628066253.default.svc.cluster.local

To connect to your ZooKeeper server run the following commands:

    export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=zookeeper,app.kubernetes.io/instance=zookeeper-1628066253,app.kubernetes.io/component=zookeeper" -o jsonpath="{.items[0].metadata.name}")
    kubectl exec -it $POD_NAME -- zkCli.sh

To connect to your ZooKeeper server from outside the cluster execute the following commands:

    kubectl port-forward --namespace default svc/zookeeper-1628066253 2181:2181 &
    zkCli.sh 127.0.0.1:2181
[root@master01 ~]# 

卸载应用

[root@master01 ~]# helm uninstall zookeeper-1628066005
release "zookeeper-1628066005" uninstalled
[root@master01 ~]# 

helm下载chart包

[zhangpeng@27ops helm]$ helm pull bitnami/apache
[zhangpeng@27ops helm]$ ls
apache-9.2.1.tgz
[zhangpeng@27ops helm]$ tar xf apache-9.2.1.tgz 
[zhangpeng@27ops helm]$ ls
apache  apache-9.2.1.tgz
[zhangpeng@27ops helm]$ cd apache/
[zhangpeng@27ops apache]$ ls
Chart.lock  charts  Chart.yaml  files  README.md  templates  values.schema.json  values.yaml
[zhangpeng@27ops apache]$ vim Chart.yaml