【Kubernetes】kubectlでマニフェスト作成
2022.03.08
2024.03.24
Kubernetes
kubectl
はじめに
kubectl
でマニフェストのテンプレを作成する方法を紹介します。
kubectlでマニフェスト作成
kubectl
でマニフェストを作成する場合は、下記のオプションを利用します。
--dry-run=client
-o yaml
--dry-run=client
は、コマンドによって実際にオブジェクトが作成されないようになります。また、-o yaml
は、出力をYAML形式にします。
これらのオプションを利用することでYAML形式のオブジェクトのマニフェストを出力できます。
Pod
Podのマニフェストの場合、下記のようになります。
1kubectl run <pod name> --image=<image name> --dry-run=client -o yaml > pod.yml
nginxのPodの場合、下記のようなマニフェストpod.yml
を作成できます。
1kubectl run nginx --image=nginx --dry-run=client -o yaml > pod.yml
1apiVersion: v1
2kind: Pod
3metadata:
4 creationTimestamp: null
5 labels:
6 run: nginx
7 name: nginx
8spec:
9 containers:
10 - image: nginx
11 name: nginx
12 resources: {}
13 dnsPolicy: ClusterFirst
14 restartPolicy: Always
15status: {}
Deployment
Deploymentのマニフェストの場合、下記のようになります。
1kubectl create deployment --image=<image name> <deployment name> --dry-run=client -o yaml > deployment.yml
nginxのDeploymentの場合、下記のようなマニフェストdeployment.yml
を作成できます。
1kubectl create deployment --image=nginx nginx --dry-run=client -o yaml > deployment.yml
1apiVersion: apps/v1
2kind: Deployment
3metadata:
4 creationTimestamp: null
5 labels:
6 app: nginx
7 name: nginx
8spec:
9 replicas: 1
10 selector:
11 matchLabels:
12 app: nginx
13 strategy: {}
14 template:
15 metadata:
16 creationTimestamp: null
17 labels:
18 app: nginx
19 spec:
20 containers:
21 - image: nginx
22 name: nginx
23 resources: {}
24status: {}
Service
Serviceのマニフェストの場合、下記のようになります。
1kubectl create service clusterip <service name> --tcp=<port>:<target port> --dry-run=client -o yaml > service.yml
実際にやってみると、下記のようなマニフェストservice.yml
を作成できます。
1kubectl create service clusterip nginx --tcp=8080:80 --dry-run=client -o yaml > service.yml
1apiVersion: v1
2kind: Service
3metadata:
4 creationTimestamp: null
5 labels:
6 app: nginx
7 name: nginx
8spec:
9 ports:
10 - name: 8080-80
11 port: 8080
12 protocol: TCP
13 targetPort: 80
14 selector:
15 app: nginx
16 type: ClusterIP
17status:
18 loadBalancer: {}
参考
Share
関連記事
k9sでコンテキストとNamespaceの切り替える
2022.07.10
【Kubernetes】Podのコンテナにアタッチ
2022.03.03
【Backstage】ローカルでKubernetesと連携してみる
2024.06.21
【Kubernetes】ServiceAccountについて理解する
2022.06.11