Open6
GKE Autopilot を使ってk8sクラスタをいい感じにシュッとたてる
GKE Autopilot を使ってk8sクラスタをいい感じにシュッと立てていく
ぽちぽちしてたてた。5〜10分くらいでできた。terafform化したかったけど、それはまたの機会に
大体デフォルトのままセットアップして、リージョンを東京に設定したくらい。あとはPodのCIDRのデフォルトが10.20.0.0/17
っぽくてそうなんだという感想
gcloud container clusters get-credentials ...
を実行してクレデンシャル引っ張ってきてkubectlコマンド発行できるようにする。
基本的なコマンドは通っていそう。(ワーカー)ノードは作られていない
$ k get po
No resources found in default namespace.
$ k get po -A
NAMESPACE NAME READY STATUS RESTARTS AGE
gke-gmp-system alertmanager-0 0/2 Pending 0 5m57s
gke-gmp-system collector-hkpjw 0/2 Init:0/1 0 5m5s
...
$ k get node -A
No resources found
Hello World!
Hello World! なbudyboxをやる。
$ k create ns example
$ cat << EOF > example.yml
apiVersion: v1
kind: Pod
metadata:
name: busybox
namespace: example
spec:
containers:
- name: busybox
image: busybox
command: ["sleep", "600"]
resources:
limits:
cpu: "100m"
memory: "256Mi"
volumeMounts:
- name: host-path
mountPath: /data
readOnly: true
volumes:
- name: host-path
hostPath:
path: /var/log
restartPolicy: Never
EOF
$ k apply -f ./example.yml
Warning: autopilot-default-resources-mutator:Autopilot updated Pod example/busybox: adjusted 'cpu' resource to meet requirements for containers [busybox] (see http://g.co/gke/autopilot-defaults).
pod/busybox created
できた
1分くらいするとノードがニョキっと生え、Podも生える。便利
$ k get node -n example
NAME STATUS ROLES AGE VERSION
gk3-core-pool-2-a353431b-ms8m Ready <none> 60s v1.29.5-gke.1091002
$ k get po -n example
NAME READY STATUS RESTARTS AGE
busybox 1/1 Running 0 3m18s
せっかくなので、NginxなHello Worldもやる。
$ curl -o nginx.yml https://kubernetes.io/examples/application/deployment.yaml
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 371 100 371 0 0 113 0 0:00:03 0:00:03 --:--:-- 113
$ cat nginx.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2 # tells deployment to run 2 pods matching the template
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
使われているnginxのイメージが古そうなので、1.27.0とかに更新してあげる。
$ k apply -f ./nginx.yml
Warning: autopilot-default-resources-mutator:Autopilot updated Deployment default/nginx-deployment: defaulted unspecified 'cpu' resource for containers [nginx] (see http://g.co/gke/autopilot-defaults).
deployment.apps/nginx-deployment created
できた
$ k get deployments -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
nginx-deployment 2/2 2 2 6m30s nginx nginx:1.27.0 app=nginx
$ k get po
NAME READY STATUS RESTARTS AGE
nginx-deployment-65555b5dfb-49pdh 1/1 Running 0 2m13s
nginx-deployment-65555b5dfb-dz6v6 1/1 Running 0 3m46s
ノードもひとつ増えている。嬉しい
$ k get node
NAME STATUS ROLES AGE VERSION
gk3-core-nap-1cwkvnbf-ffe91f52-vg88 Ready <none> 2m26s v1.29.5-gke.1091002
gk3-core-pool-2-a353431b-ms8m Ready <none> 12m v1.29.5-gke.1091002
一旦クリーンアップする
$ k delete -f ./nginx.yml
deployment.apps "nginx-deployment" deleted
$ k delete -f ./example.yml
pod "busybox" deleted
$ k delete ns example
namespace "example" deleted
消えていそう
$ k get po -A | grep -v gke-gmp-system | grep -v kube-system | grep -v gke-managed-cim
NAMESPACE NAME READY STATUS RESTARTS AGE