1、创建一个自定义的命名空间dev:
kubectl create ns dev
2、在dev命名空间下通过yaml文件部署一个deployment,deploy内容如下:
a、使用nginx镜像;
b、副本数为3;
c、升级策略为滚动升级;
d、配置就绪探针、存活探针;
e、设置数据持久化方式为HostPath;
nginxpod.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: pc-deployment
namespace: dev
labels:
app: nginx
spec:
replicas: 3
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.19.1
imagePullPolicy: IfNotPresent
ports:
- name: http
protocol: TCP
containerPort: 80
livenessProbe:
tcpSocket:
port: 80
initialDelaySeconds: 45
periodSeconds: 15
readinessProbe:
failureThreshold: 3
tcpSocket:
port: 80
initialDelaySeconds: 20
periodSeconds: 3
successThreshold: 1
timeoutSeconds: 2
resources:
limits:
cpu: "1.0"
memory: 512Mi
requests:
cpu: "0.5"
memory: 128Mi
volumeMounts:
- mountPath: /usr/share/nginx/html
name: html
volumes:
- name: html
hostPath:
path: /html
type: DirectoryOrCreate
kubectl create -f nginxpod.yaml
kubectl get pod -A
f、修改nginx首页;
3、通过外部访问k8s的首页;
kubectl expose deploy pc-deployment --name=svc-nginx --type=NodePort --port=80 --target-port=80 -n dev
kubectl get svc svc-nginx -n dev -o wide
4、对创建好的deploy进行扩缩容、重启、更换镜像版本、版本回退;
扩容:
kubectl scale deploy pc-deployment --replicas=5 -n dev
缩容:
kubectl edit deploy pc-deployment -n dev
kubectl get deploy pc-deployment -n dev
重启:
kubectl rollout restart deployment pc-deployment -n dev
更换镜像版本:
kubectl set image deployment pc-deployment nginx=nginx:1.17.2 -n dev
版本回退:
kubectl rollout undo deployment pc-deployment --to-revision=1 -n dev