安装包地址:https://get.helm.sh/helm-v3.16.0-linux-amd64.tar.gz
将安装包上传至服务器解压
tar -xf helm-v3.16.0-linux-amd64.tar.gz
cd linux-amd64

将helm移到/usr/local/bin/目录
mv helm /usr/local/bin/

执行helm help测试

添加仓库:helm repo add [仓库名称] [仓库地址]
Artifact Hub(核心查找平台) 地址:https://artifacthub.io/ 说明:并非传统意义上的仓库,而是聚合了全球主流 Helm 仓库的搜索平台。 用途:可直接搜索目标应用(如 Nginx、MySQL)的 Chart,并获取对应的仓库地址,是日常使用的首选入口。常用仓库: Bitnami:https://charts.bitnami.com/bitnami 阿里云:https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts Rancher:https://charts.rancher.io 软件厂商仓库: Nginx 官方仓库 地址:https://helm.nginx.com/stable 包含 Chart:nginx-ingress(Ingress 控制器)、nginx-service-mesh等。 MySQL 官方仓库 地址:https://charts.bitnami.com/bitnami(Bitnami 维护,MySQL 官方推荐) 包含 Chart:mysql、mariadb、percona等数据库相关应用。 Prometheus(监控)官方仓库 地址:https://prometheus-community.github.io/helm-charts 包含 Chart:prometheus、grafana、alertmanager等监控组件,是搭建监控系统的核心仓库。 Elasticsearch(日志 / 搜索)仓库 地址:https://helm.elastic.co 包含 Chart:elasticsearch、kibana、logstash等 ELK/ELASTIC Stack 组件。
helm repo add bitnami https://charts.bitnami.com/bitnami
查看已添加得仓库

安装mysql,搜索添加仓库中可安装得mysql版本
helm search repo mysql

安装
helm install my-mysql bitnami/mysql --version 9.4.0 --namespace my-middle
NAME: my-mysql LAST DEPLOYED: Wed Oct 15 16:42:55 2025 NAMESPACE: my-middle STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: CHART NAME: mysql CHART VERSION: 9.4.0 APP VERSION: 8.0.30** Please be patient while the chart is being deployed **Tip:Watch the deployment status using the command: kubectl get pods -w --namespace my-middleServices:echo Primary: my-mysql.my-middle.svc.cluster.local:3306Execute the following to get the administrator credentials:echo Username: rootMYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace my-middle my-mysql -o jsonpath="{.data.mysql-root-password}" | base64 -d)To connect to your database:1. Run a pod that you can use as a client:kubectl run my-mysql-client --rm --tty -i --restart='Never' --image docker.io/bitnami/mysql:8.0.30-debian-11-r27 --namespace my-middle --env MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD --command -- bash2. To connect to primary service (read/write):mysql -h my-mysql.my-middle.svc.cluster.local -uroot -p"$MYSQL_ROOT_PASSWORD"

根据提示获取mysql root初始密码
kubectl get secret --namespace default my-mysql -o jsonpath="{.data.mysql-root-password}" | base64 -d
密码:ZgDggZty9A
查看安装得mysql
helm list --namespace my-middle

创建pv,因为安装k8s后没有创建pv,导致安装mysql报错
Warning FailedScheduling 4m18s default-scheduler 0/3 nodes are available: pod has unbound immediate PersistentVolumeClaims. preemption: 0/3 nodes are available: 3 Preemption is not helpful for scheduling. 这个错误提示表明你的 Pod 无法被调度,因为它所引用的 PersistentVolumeClaim (PVC) 没有找到可用的 PersistentVolume (PV) 进行绑定。

# pv.yaml apiVersion: v1 kind: PersistentVolume metadata:name: test-pv # PV的名称 spec:capacity:storage: 10Gi # PV的存储容量accessModes:- ReadWriteOnce # 访问模式:只能被单个节点以读写方式挂载persistentVolumeReclaimPolicy: Retain # 回收策略:保留数据storageClassName: standard # 存储类名称volumeMode: FilesystemhostPath:path: /data/ # 节点上的路径(仅用于测试,生产环境不推荐)
kubectl apply -f pv.yaml
kubectl get pv

修改mysql安装时创建得pvc
kubectl edit pvc data-my-mysql-0 -n my-middle
apiVersion: v1 kind: PersistentVolumeClaim metadata:annotations:pv.kubernetes.io/bind-completed: "yes"creationTimestamp: "2025-10-15T08:42:55Z"finalizers:- kubernetes.io/pvc-protectionlabels:app.kubernetes.io/component: primaryapp.kubernetes.io/instance: my-mysqlapp.kubernetes.io/name: mysqlname: data-my-mysql-0namespace: my-middleresourceVersion: "14465"uid: 8b3f03f4-a0a6-4db8-8ae8-d49e1972aaed spec:accessModes:- ReadWriteOnce # pv与pvc两者保持一致resources:requests:storage: 8GistorageClassName: standard # pv与pvc两者保持一致volumeMode: Filesystem # pv与pvc两者保持一致volumeName: test-pv # 添加创建得pv status:accessModes:- ReadWriteOncecapacity:storage: 10Giphase: Bound
保存后查看pvc状态
kubectl get pvc -n my-middle
