helm安装mysql_helm安装配置
簡介
helm是kubernetes的包管理工具,用于簡化部署和管理 Kubernetes 應用。用來管理charts——預先配置好的安裝包資源。
Helm和charts的主要作用:
應用程序封裝
版本管理
依賴檢查
便于應用程序分發
helm是一個C/S框架的軟件,helm相當于一個客戶端,tiller是一個服務端
Helm CLI 是 Helm 客戶端,可以在本地執行
Tiller 是服務器端組件,在 Kubernetes 群集上運行,并管理 Kubernetes 應用程序的生命周期
Repository 是 Chart 倉庫,Helm客戶端通過HTTP協議來訪問倉庫中Chart的索引文件和壓縮包
安裝
安裝之前需要先配置好kubeconfig,kubectl可以正常使用就表示kubeconfig已經配置正確,也可以通過環境變量KUBECONFIG指定helm使用的kubeconfig
安裝helm
# 如下地址下載helm二進制文件
# 解壓之后放在自己的PATH路徑下
# https://github.com/helm/helm/releases
mkdir -pv helm && cd helm
wget https://storage.googleapis.com/kubernetes-helm/helm-v2.9.1-linux-amd64.tar.gz
tar xf helm-v2.9.1-linux-amd64.tar.gz
sudo mv linux-amd64/helm /usr/local/bin
rm -rf linux-amd64
# 查看版本,不顯示出server版本,因為還沒有安裝server
helm version
復制代碼
簡單安裝tiller(本次實驗采用)
# 部署 tiller
helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.9.1 \
--stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
# 查看
kubectl get pods -n kube-system -l app=helm
kubectl get svc -n kube-system -l app=helm
復制代碼
安全性更高的安裝tiller(tls)
helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.9.1 \
--stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts \
--tiller-tls \
--tiller-tls-verify \
--tiller-tls-cert=cert.pem \
--tiller-tls-key=key.pem \
--tls-ca-cert=ca.pem \
--service-account=tiller
# 其他命令都需要使用 tls
# --tls
復制代碼
配置rbac
cat >helm-rbac-config.yaml<
apiVersion: v1
kind: ServiceAccount
metadata:
name: tiller
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: tiller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
EOF
kubectl create -f helm-rbac-config.yaml
# 配置tiller使用創建的ServiceAccount
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
復制代碼
查看狀態
# 查看pod啟動情況
kubectl get pod -n kube-system -l app=helm
# 再次查看版本,顯示出server版本
helm version
復制代碼
簡單使用
查看可用charts
# 更新charts列表
helm repo update
# 搜索可用charts
helm search
helm search mysql
復制代碼
查看已經安裝的charts
helm list
# helm ls
復制代碼
安裝測試
以下兩種部署方式任選一種
使用命令行模式部署
# 使用命令行模式部署
helm install -n mariadb-test \
--set persistence.enabled=false,mariadbRootPassword=will,mariadbUser=will,mariadbPassword=will,mariadbDatabase=will \
stable/mariadb
復制代碼
使用配置文件定制部署
# 使用配置文件方式部署
# 查看可配置項
helm inspect values stable/mariadb
# 獲取所有可配置項(去行空行和注釋)
helm inspect values stable/mariadb | egrep -v '^\s*#|^$'
# 配置
cat >config.yml<
usePassword: true
mariadbRootPassword: will
mariadbUser: will
mariadbPassword: will
mariadbDatabase: will
persistence:
enabled: false
EOF
# 部署
helm install -n mariadb-test -f config.yml stable/mariadb
復制代碼
測試
# 查看狀態
helm ls
kubectl get pods
kubectl get svc
# 連接測試
kubectl run mariadb-cli --image=bitnami/mariadb:10.1.28-r1 -i --tty bash
mysql -hmariadb-test-mariadb -uwill -pwill will
show databases;
select version();
select user();
# 刪除 mariadb-cli
kubectl delete deploy mariadb-cli
# 刪除部署
helm delete mariadb-test --purge
復制代碼
自定義chart
創建chart
# 創建
helm create hello
# chart目錄結構介紹
hello
├── charts # 本chart依賴的chart
├── Chart.yaml # 描述chart的基本信息,如名稱版本等
├── templates # kubernetes manifest文件模板目錄
│?? ├── deployment.yaml
│?? ├── _helpers.tpl
│?? ├── ingress.yaml
│?? ├── NOTES.txt # 純文本文件,可在其中填寫chart的使用說明
│?? └── service.yaml
└── values.yaml # chart配置的默認值
# 對chart的模板和配置進行測試
helm install --dry-run --debug ./
復制代碼
測試安裝chart
# 安裝
helm install -n hello-test ./
# 查看
helm ls
kubectl get pods
kubectl get svc
# 端口轉發
export POD_NAME=$(kubectl get pods --namespace default -l "app=hello,release=hello-test" -o jsonpath="{.items[0].metadata.name}")
kubectl port-forward $POD_NAME 8080:80
# 訪問
curl http://127.0.0.1:8080
# 刪除
helm delete hello-test --purge
復制代碼
chart分發
# 打包為壓縮包
helm package ./
復制代碼
參考文檔
https://blog.frognew.com/2017/12/its-time-to-use-helm.html
https://jimmysong.io/posts/manage-kubernetes-native-app-with-helm/
https://yq.aliyun.com/articles/159601
https://docs.helm.sh/
總結
以上是生活随笔為你收集整理的helm安装mysql_helm安装配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微型计算机继电器控制,可编程控制器与微机
- 下一篇: 浙江省工程师职称英语和计算机考试报名,浙