【Kubernetes】kubectlでマニフェスト作成

スポンサーリンク

はじめに

kubectlマニフェストのテンプレを作成する方法を紹介します。

kubectlでマニフェスト作成

kubectlでマニフェストを作成する場合は、下記のオプションを利用します。

  • --dry-run=client
  • -o yaml

--dry-run=clientは、コマンドによって実際にオブジェクトが作成されないようになります。また、-o yamlは、出力をYAML形式にします。

これらのオプションを利用することでYAML形式のオブジェクトのマニフェストを出力できます。

Pod

Podのマニフェストの場合、下記のようになります。

kubectl run <pod name> --image=<image name> --dry-run=client -o yaml > pod.yml

nginxのPodの場合、下記のようなマニフェストpod.ymlを作成できます。

kubectl run nginx --image=nginx --dry-run=client -o yaml > pod.yml
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: nginx
  name: nginx
spec:
  containers:
  - image: nginx
    name: nginx
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

Deployment

Deploymentのマニフェストの場合、下記のようになります。

kubectl create deployment --image=<image name> <deployment name> --dry-run=client -o yaml > deployment.yml

nginxのDeploymentの場合、下記のようなマニフェストdeployment.ymlを作成できます。

kubectl create deployment --image=nginx nginx --dry-run=client -o yaml > deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: nginx
  name: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: nginx
    spec:
      containers:
      - image: nginx
        name: nginx
        resources: {}
status: {}

Service

Serviceのマニフェストの場合、下記のようになります。

kubectl create service clusterip <service name> --tcp=<port>:<target port> --dry-run=client -o yaml > service.yml

実際にやってみると、下記のようなマニフェストservice.ymlを作成できます。

kubectl create service clusterip nginx --tcp=8080:80 --dry-run=client -o yaml > service.yml
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    app: nginx
  name: nginx
spec:
  ports:
  - name: 8080-80
    port: 8080
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: ClusterIP
status:
  loadBalancer: {}

参考

タイトルとURLをコピーしました