【k8s】Kubernetes ~ 入門編 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2020/04/27/224624
https://dk521123.hatenablog.com/entry/2020/05/01/000000

の続き。

今回は、ローカルで Kubernetes を使って nginx を立ち上げる。

目次

【1】今回のやること
【2】前提条件
【3】構築手順
 1)Minikubeを起動する
 2)Deploymentを作成する
 3)Service を作成する

【1】今回のやること

Kubernetes で nginx を立ち上げてみる

【2】前提条件

* Kubernetes の環境構築は行われていること
 => 以下の関連記事を参照のこと。

https://dk521123.hatenablog.com/entry/2020/05/01/000000

【3】構築手順

1)Minikubeを起動する
2)Deploymentを作成する
3)Service を作成する

1)Minikubeを起動する

# Minikube を起動
minikube start

# Minikube の稼働状況を確認
minikube status

# ダッシュボードを起動
minikube dashboard

2)Deploymentを作成する

[0] 定義ファイル (マニフェストファイル) 作成

* 定義ファイルの記述した内容に従って Pod を作成する
* nginx-deployment.yaml を作成
 => 作成後、以下[1]~[3]を実行する。

nginx-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.17.10
        ports:
        - containerPort: 80

[1] Deploymentを作成

# YAMLファイルに基づいてDeploymentを作成
kubectl apply -f ./nginx-deployment.yaml

[2] deployment の作成確認

# Deploymentに関する情報を表示
kubectl describe deployment nginx-deployment
# kubectl get deployments

[3] pod の作成確認

h# Deploymentによって作成されたPodを一覧表示
kubectl get pods -l app=nginx
# kubectl get pods

[4] 補足:deployment の削除

kubectl delete deployment nginx-deployment

3)Service を作成する

[0] 設定ファイル作成

* nginx-service.yaml を作成
 => 作成後、以下[1]~[3]を実行する。

nginx-service.yaml

apiVersion: v1
kind: Service
metadata:
  name: nginx
spec:
  type: LoadBalancer
  selector:
    app: nginx
  ports:
    - name: http
      port: 8080
      targetPort: 80

[1] serviceを作成

kubectl apply -f ./nginx-service.yaml

[2] service の作成確認

kubectl get services

[3] Node経由で公開されているserviceにアクセスする

minikube service nginx

https://kubernetes.io/ja/docs/setup/learning-environment/minikube/#%e3%82%af%e3%83%a9%e3%82%b9%e3%82%bf%e3%83%bc%e3%81%ab%e8%a7%a6%e3%82%8c%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86

参考文献

https://qiita.com/joe_hirata/items/0c4073f2cc39027d1c32
公式サイト
https://kubernetes.io/ja/docs/tutorials/hello-minikube/
https://kubernetes.io/ja/docs/tasks/run-application/run-stateless-application-deployment/

関連記事

Kubernetes ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2020/04/27/224624
KubernetesWindows / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2020/05/01/000000
Kubernetes ~ 基本編 / kubectlコマンド ~
https://dk521123.hatenablog.com/entry/2022/01/12/110555