takaya030の備忘録

PHP、Laravel、Docker などの話がメインです

gcloud で minikube をインストールする

ubuntu に gcloud で minikube をインストールする手順メモ
gcloud SDK と docker はインストール済みの想定

検証環境

Windows11 Home Edition (version 22H2)
VirtualBox 7.0.6
vagrant 2.3.4

# Docker Host OS
ubuntu 22.04.1 LTS

Docker version 20.10.21, build baeda1f
Google Cloud SDK 425.0.0

kubectl , minikube のインストール

$ gcloud components install kubectl
$ gcloud components install minikube

minikube の config 設定

$ minikube config set driver docker
$ minikube config set memory 2500

minikube の起動

$ minikube start

クラスターが作成された後、ノード確認

$ kubectl get nodes

NAME       STATUS   ROLES           AGE   VERSION
minikube   Ready    control-plane   80s   v1.26.1

minikube の動作確認

テスト用のマニュフェストを作成

k8s-nginx-deployment.yaml

apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
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

k8s-nginx-service.yaml

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  name: my-lb
spec:
  ports:
  - port: 8080
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer
status:
  loadBalancer: {}

リソースを作成

$ kubectl apply -f k8s-nginx-deployment.yaml
$ kubectl apply -f k8s-nginx-service.yaml

リソースの確認

$ kubectl get pods

NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-85996f8dbd-hmznb   1/1     Running   0          11m
nginx-deployment-85996f8dbd-zwbnh   1/1     Running   0          11m

$ kubectl get deployments

NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   2/2     2            2           11m

$ kubectl get services

NAME         TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP      10.96.0.1       <none>        443/TCP          1h50m
my-lb        LoadBalancer   10.105.114.49   <pending>     8080:31196/TCP   11m

ブラウザでのアクセス

Windows からアクセスできるようにポートフォワードする

$ kubectl port-forward service/my-lb 8888:8080 --address=0.0.0.0
Forwarding from 0.0.0.0:8888 -> 80

ブラウザで http://192.168.33.10:8888 を開いて以下の画面が表示されるか確認
( 192.168.33.10minikube が動作している ubuntu の IP アドレス)

リソースの削除

$ kubectl delete -f k8s-nginx-service.yaml
$ kubectl delete -f k8s-nginx-deployment.yaml

minikube の終了

$ minikube stop