本篇內(nèi)容介紹了“如何部署和體驗Helm”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比莊浪網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式莊浪網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋莊浪地區(qū)。費用合理售后完善,10年實體公司更值得信賴。
在Kubernetes上進行容器化部署并非易事,docker、環(huán)境變量、存儲、網(wǎng)絡(luò)等方面都會涉及到,這些復(fù)雜的操作可以被Helm應(yīng)用包管理工具實現(xiàn),避免了全手工操作的,Helm官網(wǎng):https://helm.sh
本次實戰(zhàn)環(huán)境是kubernetes集群(1.15.3版本),由三臺CentOS7.7服務(wù)器組成;
部署完畢后,在體驗Helm的環(huán)節(jié),需要您提前準備好NFS,作為部署應(yīng)用的網(wǎng)絡(luò)存儲空間;
ssh登錄到可以執(zhí)行kubectl操作的服務(wù)器:
下載helm包,地址:https://get.helm.sh/helm-v2.16.1-linux-amd64.tar.gz
解壓:
tar -zxvf helm-v2.16.1-linux-amd64.tar.gz
把解壓后的文件夾內(nèi)的helm文件放入/usr/local/bin/:
mv linux-amd64/helm /usr/local/bin/
查看helm版本,如下,可見客戶端版本是2.16.1,由于helm服務(wù)端(名為tiller)還沒有部署,因此顯示"could not find tiller":
[root@node1 ~]# helm version Client: &version.Version{SemVer:"v2.16.1", GitCommit:"bbdfe5e7803a12bbdf97e94cd847859890cf4050", GitTreeState:"clean"} Error: could not find tiller
客戶端部署完畢,接下來要把ServiceAccount和角色綁定建好
創(chuàng)建名為tiller的ServiceAccount:
kubectl create serviceaccount --namespace kube-system tiller
把tiller與角色tiller-cluster-rule進行綁定:
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
helm初始化,其中tiller的鏡像來自阿里云,并且將默認倉庫也設(shè)置為阿里云的:
helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.16.1 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts --service-account tiller
等待控制臺提示成功后再次執(zhí)行helm version,輸出如下,可見helm的服務(wù)端已經(jīng)返回了信息:
[root@node1 ~]# helm version Client: &version.Version{SemVer:"v2.16.1", GitCommit:"bbdfe5e7803a12bbdf97e94cd847859890cf4050", GitTreeState:"clean"} Server: &version.Version{SemVer:"v2.16.1", GitCommit:"bbdfe5e7803a12bbdf97e94cd847859890cf4050", GitTreeState:"clean"}
現(xiàn)在helm已裝好,接下來部署個應(yīng)用試試
接下來用helm部署服務(wù)的時候會用到存儲卷,因此要提前準備PV;
我這里已經(jīng)準備好了NFS作為PV;
注意,K8S集群所有宿主機上都要裝好NFS客戶端,CentOS的安裝命令如下:
yum install nfs-utils -y
創(chuàng)建名為pv-tomcat.yaml的文件,內(nèi)容如下,其中192.168.133.142是NFS服務(wù)器的地址,/usr/local/work/test/001是可用的存儲路徑:
apiVersion: v1 kind: PersistentVolume metadata: name: pv-tomcat namespace: default spec: capacity: storage: 10Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Recycle nfs: path: /usr/local/work/test/001 server: 192.168.133.142
執(zhí)行以下命令創(chuàng)建PV:
kubectl create -f pv-tomcat.yaml
PV已經(jīng)準備好,可以通過Helm部署應(yīng)用了
想部署tomcat,執(zhí)行命令helm search tomcat查找,卻發(fā)現(xiàn)阿里云的helm倉庫里沒有,只能在其他倉庫去找了;
增加一個倉庫:
helm repo add bitnami https://charts.bitnami.com/bitnami
再次查找tomcat,這回有了:
[root@node1 ~]# helm search tomcat NAME CHART VERSION APP VERSION DESCRIPTION bitnami/tomcat 6.0.6 9.0.29 Chart for Apache Tomcat
執(zhí)行以下命令部署tomcat,指定chat名為my-tomcat:
helm install \ --name my-tomcat \ bitnami/tomcat
使用helm list命令查看:
[root@node1 ~]# helm list NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE my-tomcat 1 Sun Nov 24 20:29:16 2019 DEPLOYED tomcat-6.0.6 9.0.29 default
使用kubectl get services命令查看kubernetes服務(wù),可見為tomcat創(chuàng)建了service,類型是LoadBalancer:
[root@node1 local]# kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.233.0.1443/TCP 3h46m my-tomcat LoadBalancer 10.233.16.166 80:31229/TCP 100s
由上述信息可見,tomcat服務(wù)類型為LoadBalancer,因此我們可以通過宿主機的31229端口訪問,如下圖可見:
“如何部署和體驗Helm”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!