Kubernetes——设置资源限定
一、设置资源限定
1.1 修改deploy.yml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: tomcat-deploy
spec:
# 修改副本数
replicas: 3
template:
metadata:
labels:
app: tomcat-cluster
spec:
volumes:
- name: web-app
hostPath:
path: /mnt
containers:
- name: tomcat-cluster
image: tomcat:latest
resources:
requests:
# 有0.5核cpu空闲时,便可以部署当前pod
cpu: 0.5
# 有200M内存空闲时,便可以部署当前pod
memory: 200Mi
limits:
# 限制当前pod所使用的核数
cpu: 1
# 限制使用的内存使用
memory: 512Mi
ports:
- containerPort: 8080
volumeMounts:
- name: web-app
mountPath: /usr/local/tomcat/webapps
1.2 更新部署
[root@k8s-master tomcat-deploy]# kubectl apply -f tomcat-deploy.yml
[root@k8s-master tomcat-deploy]# kubectl get deployment
NAME READY UP-TO-DATE AVAILABLE AGE
tomcat-deploy 3/3 3 3 21h
[root@k8s-master tomcat-deploy]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
tomcat-deploy-6765889cd7-gm89d 1/1 Running 0 89s 10.244.1.24 k8s-node01 <none> <none>
tomcat-deploy-6765889cd7-k5x4c 1/1 Running 0 48s 10.244.2.22 k8s-node02 <none> <none>
tomcat-deploy-6765889cd7-wnlmd 1/1 Running 0 89s 10.244.2.21 k8s-node02 <none> <none>
此时可以发现最新的node被部署到了node2
这个是因为k8s的部署机制,默认情况下,k8s使用的是可用资源优先的原则,也就是说哪个服务器的负载低,就把pod发布到那个节点上。
当然,也可以手动指定发布到哪个节点