説明
ローカル環境にMinikubeを入れて、kubernetesを動かそうと思います。
環境
vagrantでCentOS8にdocker環境を構築の続きになります。
こちらを参考にしてください。
・Windows10 home
・VirtualBox
・Vagrant
・CentOS Linux release 8.3.2011
・Docker version 19.03.14, build 5eb3275d40
・docker-compose version 1.27.4, build 40524192
・minikube version: v1.15.1
・kubectl Major:”1″, Minor:”20″, GitVersion:”v1.20.0″
Minikubeをインストール
$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 $ sudo chmod 755 minikube $ sudo install minikube /usr/local/bin/ $ sudo ln -s /usr/local/bin/minikube /usr/bin/minikube
kubectlをインストール
$ curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl $ sudo chmod +x kubectl $ sudo mv kubectl /usr/local/bin/ $ sudo ln -s /usr/local/bin/kubectl /usr/bin/kubectl
conntrackのインストール
$ sudo dnf install conntrack
Minikube実行
VirtualBox上のCentOS8のkubernetesを動かすので、「-vm-driver=none」にしてください。
$ sudo minikube start --vm-driver=none �😄 minikube v1.15.1 on Centos 8.3.2011 (vbox/amd6 ✨ Using the none driver based on existing profile ・ ・ �🔎 Verifying Kubernetes components... �🌟 Enabled addons: default-storageclass, storage-provision �👍 Done! kubectl is now configured to use "minikube" cluster and "default" namespace by efault
kubectlのjobでバッチ処理をするコンテナを動かす
今回は、hello-worldイメージを使用します。
$ sudo kubectl create job hello-world --image=hello-world job.batch/hello-world created
確認します。STATUSがCompletedになってればOKです。
$ sudo kubectl get all NAME READY STATUS RESTARTS AGE pod/hello-world-ntb4b 0/1 Completed 0 48s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 5h40m NAME COMPLETIONS DURATION AGE job.batch/hello-world 1/1 5s 48s
ログで確認します。
$ sudo kubectl logs -f hello-world-ntb4b Hello from Docker! This message shows that your installation appears to be working correctly. ・ ・
「Hello from Docker!」を確認できればOKです!
ちなみに削除方法は、
$ sudo kubectl delete jobs hello-world job.batch "hello-world" deleted
kubectlのDeploymentでnginxを動かす
Deploymentはnginxなどのwebserverを動かすのに適しています。podのスケールもでき、podが異常終了が起きたら、新しいpodが勝手に立ち上がってくれるすばらしい便利機能です。
$ sudo kubectl create deployment nginx --image=nginx deployment.apps/nginx created
確認すると
$ sudo kubectl get deploy,po NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/nginx 1/1 1 1 3m12s NAME READY STATUS RESTARTS AGE pod/nginx-6799fc88d8-rnxmf 1/1 Running 0 3m12s
Deployment1つとpodがひとつあります。ここからスケールしてpodを増やそうと思います。
$ sudo kubectl scale --replicas=5 deployment/nginx deployment.apps/nginx scaled $ sudo kubectl get deploy,po NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/nginx 5/5 5 5 9m15s NAME READY STATUS RESTARTS AGE pod/nginx-6799fc88d8-4q2rf 1/1 Running 0 38s pod/nginx-6799fc88d8-j5djm 1/1 Running 0 38s pod/nginx-6799fc88d8-ks2kn 1/1 Running 0 38s pod/nginx-6799fc88d8-q5htp 1/1 Running 0 38s pod/nginx-6799fc88d8-rnxmf 1/1 Running 0 9m15s
次にnginxのIPを確認して、アクセスしようと思います。
$ sudo kubectl get po nginx-6799fc88d8-4q2rf -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx-6799fc88d8-4q2rf 1/1 Running 0 11m 172.17.0.4 centos8.localdomain <none> <none>
$ curl -L http://172.17.0.4 <!DOCTYPE html> <html> ・ ・
コメント