尝试使用Kubernetes的自我恢复功能【超入门】
首先
Kubernetesは近年のマイクロサービス化の流れに伴い使用されている技術です。
42Tokyoの課題でKubernetesを学ぶ機会がありました。
当時の自分にはハードルが高かったですが、触れるには良い機会だったと思います。
环境
XUbuntu 18.04.5
minikube v1.14.2
kubectl v1.18.0
docker v19.03.6
Kubernetes(K8s)是什么?
Kubernetesとは、コンテナオーケストレーションツールの一つです。
コンテナオーケストレーションとは、複数あるDockerコンテナの管理をする技術です。
図のPodはデプロイできる最小単位のリソースで、1つ以上のコンテナをまとめたものです。
Nodeは1つのVMまたは物理的なマシンを表します。
Clusterはコンテナ化されたアプリケーションを実行するNodeの集合体を表します。
Kubernetes可以实现的功能是什么?
-
- 複数のDockerホストの管理
-
- コンテナのスケジューリング
-
- ローリングアップデート
-
- スケーリング / オートスケーリング
-
- コンテナの死活監視
-
- 障害時のセルフヒーリング(自己回復)
-
- サービスディスカバリ
-
- ロードバランシング
-
- データの管理
-
- ワークロードの管理
-
- ログの管理
-
- Infrastructure as Code
- その他エコシステムとの連携や拡張
自己回復機能を試す
做好准备
ローカル環境でKubernetesクラスタを立ち上げるためにMinikubeを使いました。
宣言书
Pod的配置应在清单文件中进行描述。
通过设置副本数,即使Pod死掉,也会重新创建Pod以达到指定的数量。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3 #レプリカ数。この数だけPodを立てる。
selector:
matchLabels:
app: nginx #このラベルに一致するPodを立てる
template:
metadata:
name: nginx-pod #Pod名
labels:
app: nginx #ラベル
spec:
containers:
- name: nginx #コンテナ名
image: nginx:latest #Docker image
启动Pod
kubectl apply -f nginx.yaml
删除Pod
使用命令删除其中一个正在运行的 Pod,并尝试自动恢复功能。
kubectl delete pod nginx-deployment-85ddd67557-4pgkd
把下列内容用中文进行释义,只提供一种选项:
おまけ -> 额外赠品
因为Youtube上有一个演示新功能的视频,所以我要分享一下。
链接:https://youtu.be/ObA1OEVdrQY
请看参考材料。
-
- Introduction to Kubernetes
-
- Kubernetesとは何かを図でわかりやすく解説!Pod、Namespace
- 今さら人に聞けない Kubernetes とは?