表題の通り。Kubernetesを入れる手段としては色々ありますが、今回は軽量なk3sを利用します。
kubectlも内包しているので色々便利です。
環境
- Raspberry Pi 3 (Model B)
- 最小限のセットアップは済んでいる前提
- Docker 18.09.0
- k3s 0.4.0
- Kubernetes 1.14.1
流れ
最初に、Kubernetesの起動に必要なcgroupsの設定を/boot/cmdline.txt
に書き込みます。
次のようにcgroup_memory=1 cgroup_enable=memory
を末尾に追記し、保存して再起動。
dwc_otg.lpm_enable=0 console=tty1 root=PARTUUID=6cb546a1-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait cgroup_memory=1 cgroup_enable=memory
次にDockerを入れます。最初のコマンドでインストールして、2つ目のコマンドでroot以外でも動作するようにします。
$ sudo curl -sSL https://get.docker.com | sh $ sudo usermod -aG docker pi
再ログインしてdocker version
を確認。
$ docker version Client: Version: 18.09.0 API version: 1.39 Go version: go1.10.4 Git commit: 4d60db4 Built: Wed Nov 7 00:57:21 2018 OS/Arch: linux/arm Experimental: false Server: Docker Engine - Community Engine: Version: 18.09.0 API version: 1.39 (minimum version 1.12) Go version: go1.10.4 Git commit: 4d60db4 Built: Wed Nov 7 00:17:57 2018 OS/Arch: linux/arm Experimental: false
そしてk3sを入れます。
$ curl -sfL https://get.k3s.io | sh -
k3sとKubernetesのバージョンを確認して完了です。
$ k3s kubectl version Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.1-k3s.4", GitCommit:"52f3b42401c93c36467f1fd6d294a3aba26c7def", GitTreeState:"clean", BuildDate:"2019-04-15T22:13+00:00Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/arm"} Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.1-k3s.4", GitCommit:"52f3b42401c93c36467f1fd6d294a3aba26c7def", GitTreeState:"clean", BuildDate:"2019-04-15T22:13+00:00Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/arm"} $ k3s --version k3s version v0.4.0 (7822549f)
動作確認
次のYAMLファイルをtest-nginx.yml
という名前で用意して、nginxを立ち上げてみます。
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:stable ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: nginx-port spec: type: LoadBalancer ports: - name: http port: 8080 targetPort: 80 selector: app: nginx
applyしてしばらく待ち、http://(RaspbianのIP):8080
にアクセスしてnginxのページが表示されれば完了です。
$ k3s kubectl apply -f test-nginx.yml