https://www.kkaneko.jp/tools/server/pubkey.html
Kubernetes(クーベルネティス)
・インストール
apt -y update
apt -y install openssh-server
open-ssh.server
Oracle_VM_VirtualBox_Extension_Pack
apt -y install bzip2 gcc make perl kernel-devel kernel-headers elfutils-libelf-devel
sudo apt -y install bzip2
sudo apt -y install gcc
sudo apt -y install make
sudo apt -y install perl
sudo apt -y install kernel-devel*
sudo apt -y update kernel*
curl
sudo snap install curl # version 8.1.2, or
—————————————————————-
https://kubernetes.io/ja/docs/tutorials/hello-minikube/
Hello Minikube
●目標
Minikubeへのサンプルアプリケーションのデプロイ
アプリケーションの実行
アプリケーションログの確認
始める前に
このチュートリアルはNGINXを利用してすべての要求をエコーバックするコンテナイメージを提供します。
●Minikubeクラスターの作成
1. Minikubeをローカルにインストール済みの場合は、minikube startを実行してください。
2. ブラウザーでKubernetesダッシュボードを開いてください:
disktop$ minikube dashboard
3. Katacoda環境のみ:ターミナルペーン上部の+ボタンをクリックしてから
Select port to view on Host 1 をクリックしてください。
4. Katacoda環境のみ:30000を入力し、Display Portをクリックしてください。
●Deploymentの作成
KubernetesのPod は、コンテナの管理やネットワーキングの目的でまとめられた、
1つ以上のコンテナのグループです。このチュートリアルのPodがもつコンテナは1つのみです。
Kubernetesの Deployment はPodの状態を確認し、Podのコンテナが停止した場合には再起動します。
DeploymentはPodの作成やスケールを管理するために推奨される方法(手段)です。
1. kubectl create コマンドを使用してPodを管理するDeploymentを作成してください。
Podは提供されたDockerイメージを元にコンテナを実行します。
$ kubectl create deployment hello-node –image=registry.k8s.io/echoserver:1.4
2. Deploymentを確認します:
$ kubectl get deployments
出力は下記のようになります:
NAME READY UP-TO-DATE AVAILABLE AGE
hello-node 1/1 1 1 1m
NAME READY UP-TO-DATE AVAILABLE AGE
hello-minikube 1/1 1 1 67m
hello-node 1/1 1 1 40m
3. Podを確認します:
$ kubectl get pods
出力は下記のようになります:
NAME READY STATUS RESTARTS AGE
hello-node-5f76cf6ccf-br9b5 1/1 Running 0
NAME READY STATUS RESTARTS AGE
hello-minikube-59d4768566-gs2pv 1/1 Running 1 (40m ago) 69m
hello-node-8474cdd645-dntds 1/1 Running 1 (40m ago) 42m
4. クラスターイベントを確認します:
$ kubectl get events
5. kubectl で設定を確認します:
$ kubectl config view
——————————————————————————
elm@ub2204:~$ kubectl config view
apiVersion: v1
clusters:
– cluster:
certificate-authority: /home/elm/.minikube/ca.crt
extensions:
– extension:
last-update: Thu, 02 Nov 2023 15:31:47 JST
provider: minikube.sigs.k8s.io
version: v1.31.2
name: cluster_info
server: https://192.168.49.2:8443
name: minikube
contexts:
– context:
cluster: minikube
extensions:
– extension:
last-update: Thu, 02 Nov 2023 15:31:47 JST
provider: minikube.sigs.k8s.io
version: v1.31.2
name: context_info
namespace: default
user: minikube
name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
– name: minikube
user:
client-certificate: /home/elm/.minikube/profiles/minikube/client.crt
client-key: /home/elm/.minikube/profiles/minikube/client.key
——————————————————————————
備考: kubectlコマンドの詳細な情報はコマンドラインツール(kubectl)を参照してください。
https://kubernetes.io/ja/docs/reference/kubectl/
●クリーンアップ
・クラスターに作成したリソースをクリーンアップします:
$ kubectl delete service hello-node
$ kubectl delete deployment hello-node
deployment.apps “hello-node” deleted
・(オプション)Minikubeの仮想マシン(VM)を停止します:
$ minikube stop
* 「minikube」ノードを停止しています…
* SSH 経由で「minikube」の電源をオフにしています…
* 1 台のノードが停止しました。
・(オプション)MinikubeのVMを削除します:
$ minikube delete
* docker の「minikube」を削除しています…
* コンテナー「minikube」を削除しています…
* /home/elm/.minikube/machines/minikube を削除しています…
* クラスター「minikube」の全てのトレースを削除しました。
####################################################################################################
■Minikubeをローカルにインストール
https://minikube.sigs.k8s.io/docs/start/
—————————————————————————————————
前提条件
What you’ll need
2 CPUs or more
2GB of free memory
20GB of free disk space
Internet connection
Container or virtual machine manager, such as: Docker, QEMU, Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, or VMware Fusion/Workstation
Dockerをインストール
Install Docker Engine on Ubuntu
https://docs.docker.com/engine/install/ubuntu/
1. Set up Docker’s apt repository.
$ sudo apt-get update
$ sudo apt-get install ca-certificates curl gnupg
$ sudo install -m 0755 -d /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:
$ echo \
“deb [arch=”$(dpkg –print-architecture)” signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
“$(. /etc/os-release && echo “$VERSION_CODENAME”)” stable” | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt-get update
2. Install the Docker packages.
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
3. Verify that the Docker Engine installation is successful by running the hello-world image.
$ sudo docker run hello-world
—————————————————————————————————
●1. Installation
Debian package
mura$ cd
mura$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
mura$ sudo dpkg -i minikube_latest_amd64.deb
●2. Start your cluster
elm$ sudo usermod -aG docker elm && newgrp docker
elm$ minikube start
elm@ub2204:~$ minikube start
$ minikube kubectl — get pods -A
*************************************************************************************
* Ubuntu 22.04 (vbox/amd64) 上の minikube v1.31.2
* docker ドライバーが自動的に選択されました
X 要求された 2200MiB のメモリー割当は、システムのオーバーヘッド (合計システムメ
モリー: 2460MiB) に十分な空きを残しません。安定性の問題に直面するかも知れません。
* 提案: Start minikube with less memory allocated: ‘minikube start –memory=2200mb’
* root 権限を持つ Docker ドライバーを使用
* minikube クラスター中のコントロールプレーンの minikube ノードを起動しています
* ベースイメージを取得しています…
* ロード済み Kubernetes v1.27.4 をダウンロードしています…
> preloaded-images-k8s-v18-v1…: 393.21 MiB / 393.21 MiB 100.00% 3.25 Mi
> gcr.io/k8s-minikube/kicbase…: 447.61 MiB / 447.62 MiB 100.00% 3.47 Mi
* docker container (CPUs=2, Memory=2200MB) を作成しています…
* Docker 24.0.4 で Kubernetes v1.27.4 を準備しています…
– 証明書と鍵を作成しています…
– コントロールプレーンを起動しています…
– RBAC のルールを設定中です…
* bridge CNI (コンテナーネットワークインターフェース) を設定中です…
– gcr.io/k8s-minikube/storage-provisioner:v5 イメージを使用しています
* Kubernetes コンポーネントを検証しています…
* 有効なアドオン: storage-provisioner, default-storageclass
* kubectl が見つかりません。kubectl が必要な場合、’minikube kubectl — get pods -A’
を試してください
* 終了しました!kubectl がデフォルトで「minikube」クラスターと「default」ネームスペースを使用する
よう設定されました
*************************************************************************************
●3. Interact with your cluster
$ minikube kubectl — get pods -A
*************************************************************************************
elm@ub2204:~$ minikube kubectl — get pods -A
> kubectl.sha256: 64 B / 64 B [————————-] 100.00% ? p/s 0s
> kubectl: 46.98 MiB / 46.98 MiB [————–] 100.00% 3.40 MiB p/s 14s
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-5d78c9869d-fz27l 1/1 Running 0 4m59s
kube-system etcd-minikube 1/1 Running 0 5m13s
kube-system kube-apiserver-minikube 1/1 Running 0 5m10s
kube-system kube-controller-manager-minikube 1/1 Running 0 5m10s
kube-system kube-proxy-j98hl 1/1 Running 0 4m59s
kube-system kube-scheduler-minikube 1/1 Running 0 5m10s
kube-system storage-provisioner 1/1 Running 1 (4m48s ago) 5m8s
*************************************************************************************
$ vi ~/.bash_profile
#!/usr/bin/bash
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
$ vi ~/bashrc
alias kubectl=”minikube kubectl –”
$ minikube dashboard
minikube がstartしていない場合は「minikube start」
●4. Deploy applications
・Service
Create a sample deployment and expose it on port 8080:
$ kubectl create deployment hello-minikube –image=kicbase/echo-server:1.0
$ kubectl expose deployment hello-minikube –type=NodePort –port=8080
It may take a moment, but your deployment will soon show up when you run:
$ kubectl get services hello-minikube
The easiest way to access this service is to let minikube launch a web browser for you:
$ minikube service hello-minikube
Alternatively, use kubectl to forward the port:
$ kubectl port-forward service/hello-minikube 7080:8080
Tada! Your application is now available at http://localhost:7080/.
You should be able to see the request metadata in the application output. Try changing the path of the request and observe the changes. Similarly, you can do a POST request and observe the body show up in the output.
●5. Manage your cluster
・Pause Kubernetes without impacting deployed applications:
クラスタの一時停止
$ minikube pause
・Unpause a paused instance:
クラスタの再開
$ minikube unpause
・Halt the cluster:
クラスタの停止
$ minikube stop
・Change the default memory limit (requires a restart):
デフォルトのメモリ制限を変更します (再起動が必要)。
$ minikube config set memory 9001
・Browse the catalog of easily installed Kubernetes services:
簡単にインストールできる Kubernetes サービスのカタログを参照する
$ minikube addons list
・Create a second cluster running an older Kubernetes release:
古い Kubernetes リリースを実行する 2 番目のクラスターを作成
$ minikube start -p aged –kubernetes-version=v1.16.1
・Delete all of the minikube clusters:
すべての minikube クラスターを削除
$ minikube delete –all
●Take the next step
The minikube handbook
ミニキューブハンドブック
https://minikube.sigs.k8s.io/docs/handbook/
Community-contributed tutorials
コミュニティ提供のチュートリアル
https://minikube.sigs.k8s.io/docs/tutorials/
minikube command reference
minikube コマンドリファレンス
https://minikube.sigs.k8s.io/docs/commands/
Contributors guide
貢献者ガイド
https://minikube.sigs.k8s.io/docs/contrib/
####################################################################################################
・簡単にローカルKubernetes環境を構築できるツール「Minikube」
https://knowledge.sakura.ad.jp/15320/