【備忘録】kindでKubernetesに触ってみよう①
最近、一年も積んでいた「Kubernetes完全ガイド 第二版」をようやく読み始めました。
そんなわけで、この本を読んでKubernetesを完全に理解したいと思い、とりあえず手を動かすことを決意しました。
以下、(バージョンによる違いがなければ)手順と結果の再現性はあると思いますが、解説的なアレはないです。知識がないからね。備忘録備忘録。
使用したOSするWindows 10です。 WinでローカルにKubernetesを立てるなら、minikubeかDocker Desktop for Windowsの付属のアレかkindか 自力 ですが、今回はkindを使うことにします。(minikubeは以前ハンズオンで触ったことがあるし、Dockerの付属のやつはできることしょぼいらしいので)
インストール
今回インストールするもの
インストール手順
cd your_workspace mkdir -p tmp/bin curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.12.0/kind-linux-amd64 mv ./kind ./kubectl tmp/bin export PATH=$(pwd)+"/tmp/bin:$PATH"
DockerとWSL2は、ググってよしなにやってください(こんなの見てる時点でこの2つは既に入れてるだろうと思っている)
また、Docker Desktop for Windowsを入れたら勝手にWSL2でkubectlが入ってきますが、こいつは使いません。
$ kubectl version --client $ kind version
を実行して
$ kubectl version --client Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.6", GitCommit:"ad3338546da947756e8a88aa6822e9c11e7eac22", GitTreeState:"clean", BuildDate:"2022-04-14T08:49:13Z", GoVersion:"go1.17.9", Compiler:"gc", Platform:"linux/amd64"} $ kind version kind v0.12.0 go1.17.8 linux/amd64
ちゃんとバージョンが出てきたらとりあえずOKです(バージョンを気にする必要があるようなことは当面の間しないはず!)。
Kubernetesクラスタの立ち上げ
$ kind create cluster
を実行して、しばらく待つと
Creating cluster "kind" ... ✓ Ensuring node image (kindest/node:v1.23.4) ✓ Preparing nodes ✓ Writing configuration ✓ Starting control-plane ✓ Installing CNI ✓ Installing StorageClass Set kubectl context to "kind-kind" You can now use your cluster with: kubectl cluster-info --context kind-kind Have a question, bug, or feature request? Let us know! https://kind.sigs.k8s.io/#community
このとおり、立ち上がります。
特にDockerイメージを指定していなければ、デフォルトでkindest/nodeというイメージを使ったノード一つからなるクラスタが立ち上がります。
僕は、とりあえずcurlで叩いてみる人間なので、
$ kubectl cluster-info
で、ポート(多分ランダム)を確認しまして、
Kubernetes control plane is running at https://127.0.0.1:44921 CoreDNS is running at https://127.0.0.1:44921/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
アクセスをすると……!
$ curl localhost:44921
Client sent an HTTP request to an HTTPS server.
グエー
どうやら、現状このクラスタは外部からのアクセスを受け付けるものではないようで、httpsに直したリクエストを出しても認証できなくて死ぬ。おとなしくNginxでも立ち上げてくださいという感じなのかな?
とはいえ、動いていることは確認できたので、お片付け。
kind delete cluster
これにておしまい。