top of page

kubectl で手軽に Yaml ファイルを作成する

  • zqz
  • 4 日前
  • 読了時間: 2分

Kubernetes のデプロイやサービスを定義する Yaml ファイルを kubectl で作成する方法を学んだのでブログにします。

メリット

例えば、名称空間を作成する際に Yaml ファイルを手書きすると少なくとも3 ~ 4行程度のファイルを作成し apply する必要があります。

apiVersion: v1
kind: Namespace
metadata:
  name: web
spec: {}
status: {}

このように kubectl を利用すると1行のコマンドで名称空間を作成できます。

また、 Yaml ファイルなどに書き出す事もできるため、他の環境へ引き継ぐ際も便利です。

$ kubectl create ns web -o yaml > namespace.yaml
$ ls
namespace.yaml

これは一例に過ぎませんが、 kubectl を作成して Yaml ファイルを作成する事により、正確に効率よく設定の変更や Yaml ファイルの作成をする事が出来ます。

デメリット

デメリットなのか難しいところですが、 kubectl が Yaml ファイルを出力してくれるものの Kubernetes を触る以上デプロイやサービスを定義する Yaml ファイルの理解は必要になります。

実際に kubectl を使う

kubectl を利用して Postfix をクラスターにデプロイした為、コマンドと共に記載します。

名称空間を設定します

$ kubectl create ns postfix > postfix-ns.yaml

デプロイメントを作成します

Docker イメージ "registry.challenge-cf.jp/postfix:20251004" を取得し名称空間 "postfix" にデプロイするファイルを出力します。

$ kubectl create deployment postfix --image=registry.challenge-cf.jp/postfix:20251004 -n postfix  > postfix-deploy.yaml

サービスを作成します

Port を container:25 cluster:25 として開放します。

$ kubectl create service clusterip mailrelay --tcp=25 --dry-run=client -o yaml > postfix-service.yaml

apply します

$ kubectl apply -f postfix-ns.yaml
$ kubectl apply -f postfix-deploy.yaml
$ kubectl apply -f postfix-service.yaml

Kubernetes を触る以上デプロイやサービスを定義する Yaml ファイルの理解必要ですが、kubectl などの便利なツールを利用して様々なクラスターやアプリケーションの実行環境を作成し触りながら Kubernetes について学ぶのは効率的かと思いました。

bottom of page