關於安裝helm工具,能夠參考博文:k8s之安裝配置Helm工具node
這篇博文僅僅是作一個簡單的筆記。整理的不怎麼到位,還請見諒。mysql
- 安裝倉庫中的chart包,命令舉例:helm install stable/xxx;
- 經過tar包安裝,命令舉例:helm install xxx-1.tgz(不推薦使用);
- 經過chart本地目錄安裝,命令舉例:helm install xxx/xxx(通常是使用helm fetch stable/xxxxx 下載相應的模板,而後使用tar zxf 解壓,修改解壓後的目錄中的valumes.yaml文件中的值,就是自定義服務了,這種方式比較經常使用);
- 經過URL安裝,不太經常使用,命令舉例:helm install https://xxxx/charts/xxx-1.gz 。
[root@master ~]# helm create testchart #建立testchar包 #若是沒有「tree」命令,可使用「yum -y install tree」進行安裝 [root@master ~]# tree -C testchart/ #能夠看到生成的目錄下各類模板都有了,根據業務需求進行更改便可 testchart/ ├── charts ├── Chart.yaml ├── templates │ ├── deployment.yaml │ ├── _helpers.tpl │ ├── ingress.yaml │ ├── NOTES.txt │ ├── service.yaml │ └── tests │ └── test-connection.yaml └── values.yaml [root@master ~]# helm install testchart/ --dry-run --debug #「--dry-run」:模擬安裝;「--debug」 :檢測輸出 #執行上述命令後,便可輸出該目錄模板的yaml文件內容 [root@master ~]# helm lint testchart/ #對該目錄的內容進行語法檢測,testchart是目錄名 ==> Linting testchart/ [INFO] Chart.yaml: icon is recommended 1 chart(s) linted, no failures
附加:https://hub.helm.sh/ ,這是一個helm模板倉庫的網站,上面有大量的helm模板,能夠自行查看。sql
[root@master ~]# yum -y install nfs-utils [root@master ~]# vim /etc/exports /nfsdata *(rw,sync,no_root_squash) [root@master ~]# systemctl start rpcbind [root@master ~]# systemctl start nfs-server [root@master ~]# showmount -e Export list for master: /nfsdata *
[root@master ~]# vim mysql-pv.yaml #編寫yaml文件 apiVersion: v1 kind: PersistentVolume metadata: name: mysql-pv spec: accessModes: - ReadWriteOnce capacity: storage: 8Gi persistentVolumeReclaimPolicy: Retain nfs: path: /nfsdata/mysql-pv #指定本地的掛載目錄 server: 192.168.20.6 [root@master ~]# mkdir -p /nfsdata/mysql-pv #建立nfs的本地目錄 [root@master ~]# kubectl apply -f mysql-pv.yaml #執行yaml文件 [root@master ~]# kubectl get pv #肯定pv狀態正常 NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE mysql-pv 8Gi RWO Retain Available 73s #狀態爲「Available」表示pv正常
[root@master ~]# helm install stable/mysql --set mysqlRootPassword=123.com -n test-mysql #在線安裝MySQL,並設置mysql的root密碼爲123.com,「-n」表示指定其名稱 #查看其pod [root@master ~]# helm list #使用helm查看 NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE test-mysql 1 Sun Dec 1 21:22:56 2019 DEPLOYED mysql-0.3.5 default [root@master ~]# kubectl get pod -o wide #查看mysql所對應的pod NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES test-mysql-mysql-dfb9b6944-4kmgv 1/1 Running 0 9m16s 10.244.2.2 node02 <none> <none> #能夠登陸數據庫進行測試 [root@master ~]# kubectl exec -it test-mysql-mysql-dfb9b6944-4kmgv -- mysql -uroot -p123.com
當install安裝後,會輸出一些提示信息,其中就包括了查看MySQL數據庫密碼的命令,若是沒有使用「--set」命令設置數據庫的root密碼,那麼能夠經過此命令查看出默認的數據庫root與用戶密碼,提示命令以下:數據庫
也能夠經過如下命令查看到關於test-mysql實例的詳細狀態信息vim
[root@master ~]# helm status test-mysql #查看test-mysql的實例信息
在線升級MySQL鏡像操做api
[root@master ~]# helm upgrade --set imageTag=5.7.16 test-mysql stable/mysql #其中test-mysql是實例名稱; # 仍是須要指定初次運行時指定的stable/mysql文件,若是初次運行時指定的是目錄,那麼這裏就換成目錄 #驗證鏡像是否更新成功 [root@master ~]# kubectl describe pod test-mysql-mysql-68484cd8db-59wm5
上述命令執行後,輸出的結果以下(能夠看到鏡像的版本已經更新):app
[root@master ~]# helm list #再次查看實例,能夠發現「REVISION」字段爲2,而初次建立實例時,該列爲1, #每更新一次,該數值就會+1. NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE test-mysql 2 Sun Dec 1 21:53:00 2019 DEPLOYED mysql-0.3.5 default [root@master ~]# helm history test-mysql #查看該實例的歷史版本 REVISION UPDATED STATUS CHART DESCRIPTION 1 Sun Dec 1 21:22:56 2019 SUPERSEDED mysql-0.3.5 Install complete 2 Sun Dec 1 21:53:00 2019 DEPLOYED mysql-0.3.5 Upgrade complete
進行test-mysql實例的版本回滾ide
[root@master ~]# helm rollback test-mysql 1 #回滾到版本1 Rollback was a success. [root@master ~]# helm list #再次查看,能夠看到「REVISION」的值變成了3 NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE test-mysql 3 Sun Dec 1 22:12:25 2019 DEPLOYED mysql-0.3.5 default #查看MySQL對應的容器詳細信息 [root@master ~]# kubectl describe pod test-mysql-mysql-dfb9b6944-8hfj4
返回的信息以下,能夠看到鏡像的版本已經回滾到初次建立的版本了,以下:工具
———————— 本文至此結束,感謝閱讀 ————————測試