About
AWSのARMインスタンス(a1系)でk3sを動かしてみる。
Raspberry Pi でk3sを動かしたいので、その前の動作確認としてAWS
K3sとは
K8sの軽量版。
K8sから以下の5つを減らしてk3sらしい
- Legacy and non-default features
- Alpha features
- In-tree cloud providers
- In-tree storage drivers
- Docker (optional)
環境
- k3s
- 0.2.0
- EC2
- 2台
- a1.medium
- オレゴンリージョン(日本リージョンにはa1系 がないので)
構築
Server
# curl -sfL https://get.k3s.io | sh - # k3s server & # cat /var/lib/rancher/k3s/server/node-token K101d42bdaa37af039d202xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Node
# curl -sfL https://get.k3s.io | sh - # k3s agent --server https://172.31.41.18:6443 --token ${NODE_TOKEN}
動作確認
Server側にて
# k3s kubectl get nodes NAME STATUS ROLES AGE VERSION ip-172-31-41-18.us-west-2.compute.internal Ready <none> 20m v1.13.4-k3s.1 ip-172-31-41-79.us-west-2.compute.internal Ready <none> 3m38s v1.13.4-k3s.1 # k3s kubectl get pods --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-7748f7f6df-wnf94 1/1 Running 0 19m kube-system helm-install-traefik-mppmq 0/1 Completed 0 19m kube-system svclb-traefik-7d5b84945c-tx6jg 2/2 Running 0 19m kube-system traefik-5cc8776646-p97hc 1/1 Running 0 19m
nginxを動かす
デプロイ
DaemonSetとServiceを動かします。
Raspberry Pi で動かしたくて、台数分動かしたかったのでDaemonSetを使用。
IngressとしてTraefikが使えそうなのですが、とりあえずラズパイのホスト毎にトラフィックを受けてみたかったのでNodePortを固定。
# cat <<EOL | k3s kubectl apply -f - apiVersion: apps/v1 kind: DaemonSet metadata: metadata: creationTimestamp: null labels: run: nginx name: nginx spec: selector: matchLabels: run: nginx template: metadata: creationTimestamp: null labels: run: nginx spec: containers: - image: nginx name: nginx ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: nginx spec: type: NodePort selector: run: nginx ports: - protocol: TCP port: 80 nodePort: 30000 targetPort: 80 EOL
podとserviceを見て動いてることを確認。
# k3s kubectl get pods NAME READY STATUS RESTARTS AGE nginx-2wnfr 1/1 Running 0 9s nginx-c64rj 1/1 Running 0 9s # k3s kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 124m nginx NodePort 10.43.65.97 <none> 80:30000/TCP 16s
今回は30000ポートを開けたので確認する
所感
めっちゃ楽。
これからRaspberry Pi で動かしてみます。