地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

kindとhelmで遊ぶ

kind

$ cat <<EOF | kind create cluster --name helm-practice2 --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
  kubeadmConfigPatches:
  - |
    kind: InitConfiguration
    nodeRegistration:
      kubeletExtraArgs:
        node-labels: "ingress-ready=true"
  extraPortMappings:
  - containerPort: 80
    hostPort: 80
    protocol: TCP
  - containerPort: 30000
    hostPort: 30000
    protocol: TCP
EOF

この状態でnginxを公開するには

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3  # デプロイするPodのレプリカ数
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest  # 使用するNginxのDockerイメージ
        ports:
        - containerPort: 80  # コンテナが公開するポート番号
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80  # Serviceが公開するポート番号
      targetPort: 80  # ポート80をコンテナのポート80にマッピング
      nodePort: 30000
  type: NodePort  # NodePortタイプを使用して外部からアクセス可能にする

helm

# Chartリポジトリの追加
$ helm repo add <リポジトリ名> <リポジトリURL>

# Chartリポジトリの更新
$ helm repo update

# 利用可能なChartの一覧を確認
$ helm search repo <キーワード>

# Chartの簡易情報
$ helm show chart <Chart名>

# Chartのインストール
$ helm install <Chart名> --generate-name

# リリースの確認
$ helm ls

# Chartのアンインストール
$ helm uninstall <リリース名>

nginxを入れる

artifacthub.io

ChartsをArtifacthub.ioから探してくる。show valuesで設定可能なオプションを書き出してみる

helm show values oci://registry-1.docker.io/bitnamicharts/nginx > values.yml

limitsとか書き換えてinstallすれば入る

$ helm install nginx oci://registry-1.docker.io/bitnamicharts/nginx -f values.yml