案例01
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
template:
metadata:
labels:
app: nginx
track: stable
spec:
restartPolicy: Always
nodeSelector:
mem: large
volumes:
- name: nginx-logs
emptyDir: {}
containers:
- name: nginx
image: nginx:1.7.9
imagePullPolicy: Always
ports:
- containerPort: 80
protocol: TCP
volumeMounts:
- name: nginx-logs
mountPath: /var/log/nginx/
livenessProbe:
httpGet:
port: 80
path: /check_healty
host: ping.zhufunin.com
scheme: HTTP
httpHeaders:
- name: user-agent
value: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
创建Deployment控制器
kubectl apply -f exampledeploymentv1.yaml --record
这里一定要加--record, 每次修改Deployment控制器时所使用的命令都会记录到备注字段,
以便在查看Deployment控制器变更历史或者回滚时可以辨别每次修改的内容
案例02
[root@master01]# kubectl apply -f deployment-web.yaml --record
deployment.apps/mywebdeployment created
[root@master01]# cat deployment-web.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mywebdeployment
spec:
selector:
matchLabels:
apps: web
replicas: 4
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
template:
metadata:
labels:
apps: web
spec:
containers:
- name: web
image: python:3.7
command: ['sh', '-c']
args: ['echo "<p>The host is $(hostname) </p>" > index.html;python -m http.server 80']
ports:
- name: mywebports
containerPort: 80
[root@master01]#