下載helm v3.0.2,地址https://get.helm.sh/helm-v3.0.2-linux-amd64.tar.gz。
上傳並解壓。
tar zxvf helm-v3.0.2-linux-amd64.tar.gz
將helm拷貝到系統path路徑下,以下爲/usr/local/bin/helm。
mv linux-amd64/helm /usr/local/bin/helm
查看helm版本。
helm version
version.BuildInfo{Version:"v3.0.0", GitCommit:"e29ce2a54e96cd02ccfce88bee4f58bb6e2a28b6", GitTreeState:"clean", GoVersion:"go1.13.4"}
增加常用chart源。helm提供了常用的chart源,可以在helm的hub庫https://hub.helm.sh/charts查看提供的各種應用的chart庫,左邊是各種官方chart庫,右邊是chart庫中的應用chart。
#應該都不需要牆,stable是官方的,aliyuncs最快
helm repo add stable https://kubernetes-charts.storage.googleapis.com
helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add aliyuncs https://apphub.aliyuncs.com
#查看chart列表
helm repo list
NAME URL
stable https://kubernetes-charts.storage.googleapis.com
incubator https://kubernetes-charts-incubator.storage.googleapis.com
bitnami https://charts.bitnami.com/bitnami
aliyuncs https://apphub.aliyuncs.com
使用helm安裝一個應用,如tomcat,先查找tomcat。其中APP VERSION是tomcat的版本,CHART VERSION是Chart的版本。選擇bitnami/tomcat安裝,版本比較新。
helm search repo tomcat
NAME CHART VERSION APP VERSION DESCRIPTION
aliyuncs/tomcat 6.0.5 9.0.27 Chart for Apache Tomcat
bitnami/tomcat 6.1.3 9.0.30 Chart for Apache Tomcat
stable/tomcat 0.4.0 7.0 Deploy a basic tomcat application server with s...
對於初學者來說,可以先將tomcat的chart庫直接拉下來,查看其配置結構。
helm pull bitnami/tomcat --untar
ls
tomcat
tree tomcat
tomcat
├── Chart.yaml
├── ci
│ └── values-with-ingress-and-initcontainers.yaml
├── README.md
├── templates
│ ├── deployment.yaml
│ ├── _helpers.tpl
│ ├── ingress.yaml
│ ├── NOTES.txt
│ ├── pvc.yaml
│ ├── secrets.yaml
│ └── svc.yaml
└── values.yaml
其中最關鍵的是tomcat/values.yaml文件。
可以從helm的hub庫中查找tomcat的安裝說明。
可以在網上查看各種詳細介紹helm的文章,作者計劃將來也會介紹,但爲了儘快安裝helm,下面直接給出安裝命令。
直接在線安裝bitnami/tomcat,my-web爲release名稱;service.type=NodePort表示將tomcat的service對外暴露端口的方式改爲NodePort(缺省爲LoadBalancer);persistence.enabled=false表示將不啓用持久化存儲卷(缺省爲true,啓用持久化存儲卷需要提前準備共享文件系統,比較複雜,此處簡化)。
helm install my-web bitnami/tomcat --set service.type=NodePort --set persistence.enabled=false
NAME: my-web
LAST DEPLOYED: Wed Jan 1 16:09:06 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
** Please be patient while the chart is being deployed **
1. Get the Tomcat URL by running:
export NODE_PORT=$(kubectl get --namespace default -o jsonpath="{.spec.ports[0].nodePort}" services my-web-tomcat)
export NODE_IP=$(kubectl get nodes --namespace default -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT/
2. Login with the following credentials
echo Username: user
echo Password: $(kubectl get secret --namespace default my-web-tomcat -o jsonpath="{.data.tomcat-password}" | base64 --decode)
查看安裝結果。
kubectl get all
NAME READY STATUS RESTARTS AGE
pod/my-web-tomcat-5759ff9f44-df594 1/1 Running 0 7m30s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.1.0.1 <none> 443/TCP 17d
service/my-web-tomcat NodePort 10.1.138.156 <none> 80:34983/TCP 7m30s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/my-web-tomcat 1/1 1 1 7m30s
NAME DESIRED CURRENT READY AGE
replicaset.apps/my-web-tomcat-5759ff9f44 1 1 1 7m30s
訪問http://192.168.1.55:34983/,如果可以訪問說明tomcat安裝成功。