スポンサーリンク

client-goのexampleであるcreate-update-delete-deploymentを動かしてみる

client-go
この記事は約6分で読めます。

はじめに

引き続きclient-goのexampleを動かしてみる。

今回はcreate-update-delete-deployment。

 

client-go/examples/create-update-delete-deployment at release-1.21 · kubernetes/client-go
Go client for Kubernetes. Contribute to kubernetes/client-go development by creating an account on GitHub.

 

kubernetes クラスタの外からアクセスするのでskaffoldは使わない。

準備

kindを使う。

各versionはこちら参照

client-goのexampleであるout-of-cluster-client-configurationを動かしてみる
初めに client-goを使ってみたいと思っていたら素晴らしいexampleが揃っていたので動かしたときのメモを残しておく。 こちらはkubernetesクラスタの外側から動かす方法 kindの準備 動...

 

流れ

1. deploymentが作成される2つのreplicaあり

Enter keyを押す(1回目)

2. deploymentが更新される1つのreplicaになる

Enter keyを押す(2回目)

3. namespace defaultのdeploymentが取得され名前とreplica数が表示される

Enter keyを押す(3回目)

4. deploymentが削除される

 

起動

kind起動させたらgo run main.goでOK

 

結果

$ go run main.go 
Creating deployment...
Created deployment "demo-deployment".
-> Press Return key to continue.

ここでEnter keyを押す(1回目)

Updating deployment...
Updated deployment...
-> Press Return key to continue.

ここでEnter keyを押す(2回目)

Listing deployments in namespace "default":
 * demo-deployment (1 replicas)
-> Press Return key to continue.

ここでEnter keyを押す(3回目)

Deleting deployment...
Deleted deployment.
$ 

おしまい。

 

別窓建てて見てみる

$ kubectl get pod
NAME                               READY   STATUS    RESTARTS   AGE
demo-deployment-6b4d4fbcdb-ffrs4   1/1     Running   0          56s
demo-deployment-6b4d4fbcdb-kfqnl   1/1     Running   0          56s

$ kubectl get deployments.apps 
NAME              READY   UP-TO-DATE   AVAILABLE   AGE
demo-deployment   2/2     2            2           59s

※以下一部抜粋

$ kubectl get deployments.apps demo-deployment -o yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
  generation: 1
  name: demo-deployment
  namespace: default
  resourceVersion: "906"
  uid: 3bd58e75-12c5-44b9-a3b3-9dbc9537f9ae
spec:
  progressDeadlineSeconds: 600
  replicas: 2
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: demo
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: demo
    spec:
      containers:
      - image: nginx:1.12
        imagePullPolicy: IfNotPresent
        name: web
        ports:
        - containerPort: 80
          name: http
          protocol: TCP
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

Enter keyを押す(1回目)

$ kubectl get pod 
NAME                               READY   STATUS    RESTARTS   AGE
demo-deployment-78f7c8cc45-pjzjw   1/1     Running   0          67s


$ kubectl get deployments.apps 
NAME              READY   UP-TO-DATE   AVAILABLE   AGE
demo-deployment   1/1     1            1           71s

Enter keyを押す(2回目)

※変化なし

$ kubectl get pod 
NAME                               READY   STATUS    RESTARTS   AGE
demo-deployment-78f7c8cc45-pjzjw   1/1     Running   0          2m42s

Enter keyを押す(3回目)

$ kubectl get pod 
No resources found in default namespace.

$ kubectl get deployments.apps 
No resources found in default namespace.

おしまい。

 

 

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