Pod 中的容器有可能会因为各种原因死掉,Deployment controller 会通过动态创建和销毁 Pod 来保证应用整体的健壮性。
1. 通过 Yaml 配置文件创建
在实际开发中我们通常使用配置文件的形式来部署应用。
创建 Deployment
Deployment 的 yaml 定义如下
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: webapp-deploy
labels:
app: webapp
spec:
replicas: 2 # tells deployment to run 2 pods matching the template
template: # create pods using pod definition in this template
metadata:
labels:
app: webapp
spec:
containers:
- name: webapp
image: katacoda/docker-http-server:latest
ports:
- containerPort: 80
执行命令生成 Deployment
kubectl create -f webapp-deploy.yml --record
查看 Deployment 信息
➜ lab2 kubectl get deploy -o wide
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
webapp-deploy 2 2 2 0 10s webapp katacoda/docker-http-server:latest app=webapp
查看 Replica set 信息
Replica set 确保任何时候都有定量的 Pod
➜ lab2 kubectl get rs
NAME DESIRED CURRENT READY AGE
webapp-deploy-b8569996f 2 2 2 17m
看下 Pod 的信息
➜ lab2 kubectl get pods -o wide -l app=webapp --show-labels
NAME READY STATUS RESTARTS AGE IP NODE LABELS
webapp-deploy-b8569996f-26fr9 1/1 Running 0 18m 10.1.0.72 docker-for-desktop app=webapp,pod-template-hash=641255529
webapp-deploy-b8569996f-bvh7t 1/1 Running 0 18m 10.1.0.71 docker-for-desktop app=webapp,pod-template-hash=641255529
Pod 中的容器有可能会因为各种原因死掉,Deployment controller 会通过动态创建和销毁 Pod 来保证应用整体的健壮性。
1. 通过 Yaml 配置文件创建
在实际开发中我们通常使用配置文件的形式来部署应用。
创建 Deployment
Deployment 的 yaml 定义如下
执行命令生成 Deployment
查看 Deployment 信息
查看 Replica set 信息
看下 Pod 的信息
创建服务
Service 的 yaml 定义如下
执行命令生成 Service
看下 Service 的信息
由于现在 Deployment 存在2个 Pod,所以访问的时候会定位到不同的 Pod下
2. 通过 Kubectl 创建
创建 Deployment
使用kubectl run命令创建 Deployment 来管理Pod
创建 Service
总结