Helmのインストールファイルは次のURLから取得できます: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 sudo mv helm /usr/local/bin/
Helmが正しくインストールされているか確認するには、次を実行します:
helm help
リポジトリを追加するには以下のように入力します:
helm repo add [リポジトリ名] [リポジトリアドレス]
Artifact Hub(主要な検索プラットフォーム)
URL: 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 公式リポジトリ
URL: https://helm.nginx.com/stable
含まれる Chart: nginx-ingress(Ingressコントローラー)、nginx-service-meshなど。
MySQL 公式リポジトリ
URL: https://charts.bitnami.com/bitnami(Bitnami維持、MySQL公式推奨)
含まれる Chart: mysql、mariadb、perconaなどのデータベース関連アプリケーション。
Prometheus(モニタリング)公式リポジトリ
URL: https://prometheus-community.github.io/helm-charts
含まれる Chart: prometheus、grafana、alertmanagerなどのモニタリングコンポーネントで、モニタリングシステム構築の核心リポジトリです。
Elasticsearch(ログ/検索)リポジトリ
URL: https://helm.elastic.co
含まれる Chart: elasticsearch、kibana、logstashなどのELK/ELASTIC Stackコンポーネント。
Bitnamiリポジトリを追加する例:
helm repo add bitnami https://charts.bitnami.com/bitnami
追加したリポジトリを表示します。
helm repo list
MySQLのインストールには以下の手順を使用します:
helm search repo mysql helm install my-db bitnami/mysql --version 9.4.0 --namespace my-app
NAME: my-db
LAST DEPLOYED: Wed Oct 15 16:42:55 2025
NAMESPACE: my-app
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-app
Services:
echo Primary: my-db.my-app.svc.cluster.local:3306
Execute the following to get the administrator credentials:
echo Username: root
MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace my-app my-db -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-db-client --rm --tty -i --restart='Never' --image docker.io/bitnami/mysql:8.0.30-debian-11-r27 --namespace my-app --env MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD --command -- bash
2. To connect to primary service (read/write):
mysql -h my-db.my-app.svc.cluster.local -uroot -p"$MYSQL_ROOT_PASSWORD"
MySQLのrootパスワードを取得するには以下を使用します:
kubectl get secret --namespace default my-db -o jsonpath="{.data.mysql-root-password}" | base64 -d
インストールされたMySQLを確認するには以下を実行します:
helm list --namespace my-app
PersistentVolumeを作成します。Kubernetesのインストール後にPVを作成していない場合、MySQLのインストール時にエラーが発生することがあります。
# pv-sample.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: sample-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: standard
volumeMode: Filesystem
hostPath:
path: /mnt/data
PersistentVolumeを作成します:
kubectl apply -f pv-sample.yaml kubectl get pv
MySQLインストール時に作成されたPVCを修正します:
kubectl edit pvc data-my-db-0 -n my-app
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-db
app.kubernetes.io/name: mysql
name: data-my-db-0
namespace: my-app
resourceVersion: "14465"
uid: 8b3f03f4-a0a6-4db8-8ae8-d49e1972aaed
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 8Gi
storageClassName: standard
volumeMode: Filesystem
volumeName: sample-pv
status:
accessModes:
- ReadWriteOnce
capacity:
storage: 10Gi
phase: Bound
変更後の状態を確認します:
kubectl get pvc -n my-app