安装Helm
安装包地址: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-middle Services: echo Primary: my-mysql.my-middle.svc.cluster.local:3306 Execute the following to get the administrator credentials: echo Username: root MYSQL_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 -- bash 2. 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: Filesystem hostPath: 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-protection labels: app.kubernetes.io/component: primary app.kubernetes.io/instance: my-mysql app.kubernetes.io/name: mysql name: data-my-mysql-0 namespace: my-middle resourceVersion: "14465" uid: 8b3f03f4-a0a6-4db8-8ae8-d49e1972aaed spec: accessModes: - ReadWriteOnce # pv与pvc两者保持一致 resources: requests: storage: 8Gi storageClassName: standard # pv与pvc两者保持一致 volumeMode: Filesystem # pv与pvc两者保持一致 volumeName: test-pv # 添加创建得pv status: accessModes: - ReadWriteOnce capacity: storage: 10Gi phase: Bound
保存后查看pvc状态
kubectl get pvc -n my-middle


浙公网安备 33010602011771号