一、体验k8s

官网地址:https://kubernetes.io/docs/tutorials/hello-minikube/


1.1.启动

minikube start

查看信息:

kubectl cluster-info

1116.png

kubectl get nodes

1115.png


1.2.部署应用

kubectl run kubernetes-bootcamp \
--image=docker.io/jocatalin/kubernetes-bootcamp:v1 \
--port=8080

1111.png


查看当前的 Pod:

1112.png

1.3.端口映射访问

kubectl expose deployment/kubernetes-bootcamp \
--type="NodePort" \
--port 8080

1113.png


查看端口映射:

kubectl get services

1114.png

访问应用:

curl minikube:31584

1117.png


2.scale应用

默认只会运行一个副本,可以通过scale来设置数量

2.1.查看当前副本

kubectl get deployments

1118.png


2.2.增加副本为3:

kubectl scale deployments/kubernetes-bootcamp --replicas=3

1119.png


kubectl get deployments

1120.png


查看当前pods数:

kubectl get pods

docker 实践(十二)k8s 初体验_第1张图片


访问应用可以看到被不同的pod接受:

docker 实践(十二)k8s 初体验_第2张图片


减少副本:

kubectl scale deployments/kubernetes-bootcamp --replicas=2

docker 实践(十二)k8s 初体验_第3张图片


有一个副本正在终止,过一段时间就会被回收

1124.png

3.更新

3.1.将image从v1升级到v2

kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2

1125.png


v1版本的pod逐个被删除:

docker 实践(十二)k8s 初体验_第4张图片


访问应用查看版本:

1127.png


二、Kubernetes的概念简单说明

Cluster: 是存储网络资源集合

Master: 调度应用,可以部署多个

Node: 运行容器应用,由master管理

Pod:包含一个或多个容器,可以被整体调度到一个Node上,抽象的一个单元集合。

Controller: Kubernetes 通过Controller 来管理Pod。常用的Controller如: Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job 等

Deployment :创建 Deployment 来部署应用,可以管理 Pod 的多个副本。

ReplicaSet :实现Pod 的多副本管理。

DaemonSet :用于每个 Node 最多只运行一个 Pod 副本的场景。

StatefuleSet:保证 Pod 的每个副本在整个生命周期中名称是不变。

Job :用于运行结束就删除的应用。

Service:  定义了外界访问一组特定 Pod 的方式。

Namespace: 可以将一个物理的 Cluster 逻辑上划分成多个虚拟 Cluster。