1、kubernetes集群1.19
2、部署应用php-apche
apiVersion: apps/v1
kind: Deployment
metadata:
name: php-apache
spec:
selector:
matchLabels:
run: php-apache
replicas: 3
template:
metadata:
labels:
run: php-apache
spec:
schedulerName: my-scheduler
containers:
- image: baodan123/hpa-example:v1
name: php-apache
ports:
- containerPort: 80
resources:
limits:
cpu: 500m
requests:
cpu: 200m
---
apiVersion: v1
kind: Service
metadata:
name: php-apache
labels:
run: php-apache
spec:
ports:
- port: 80
selector:
run: php-apache
这个应用的部署请参考:
https://blog.csdn.net/weixin_38320674/article/details/105460033
注意:因为在文件中添加了一个schedulerName: my-scheduler 这个属性,但是kubernetes自身没有这个调度器,所以pod最终会处于未调度的状态,处于pending状态。副本数为3。
补充:
pod的几种状态:
1)Pending:Pod创建已经提交给k8s,但是因为某种原因不能顺利创建,例如下载镜像慢,调度不成功等。
2)Running:Pod已经绑定到一个节点上了,并且已经创建了所有容器。只是有一个容器正在运行,或者在启动中。
3)Secceeded:Pod中的所有容器都已经成功终止,不能重新启动。
4)Failed: Pod中所有的容器均已经终止,且至少有一个容器已经在故障中终止。
5)Unkown:由于某中原因apiserver无法获取到Pod的状态。通常是由于Master与pod所在的主机失去连接了。
常用的排障命令:
[root@master01 demo3]# kubectl describe pod nginx-harbor-limit-54ccbb6557-c6hwx
[root@master01 demo3]# kubectl logs nginx-harbor-limit-54ccbb6557-c6hwx
[root@master01 demo3]# kubectl exec -it nginx-harbor-limit-54ccbb6557-x96ch bash