13, k8s 的资源限制

1,镜像拉取策略(imagePullPolicy):
	IfNotPresent:默认值,镜像在宿主机上不存在时才拉取
	Always:每次创建 Pod 都会重新拉取一次镜像
	Never: Pod 永远不会主动拉取这个镜像
	
	
2,dockerhub仓库:
	公开的项目:可以任意下载,但是不可任意上传
	私有的:必须先登陆,才可以下载

如果是 http 的 Harbor,那么 docker 在拉取的时候,就需要在每个 node 机器,设置可信任。
docker 私有镜像仓库的拉取(如果是 https 的仓库,拷贝证书到指定机器就可以,拉取镜像的时候拷贝了证书不需要 docker pull https:xxx.com 拉取,直接 docker pull 域名:端口) 

docker 拉取和k8s 拉取镜像的凭局不是同一套。


3,Pod和Container的资源请求和限制:
	spec.containers[].resources.limits.cpu
	spec.containers[].resources.limits.memory
	spec.containers[].resources.requests.cpu
	spec.containers[].resources.requests.memory


资源限制:
	Requests:  就是需求限制,也叫软限制
	Limits:最大限制,也叫硬限制
	通常来说:Limits >= Requests
	并且requests 和 limits 通常要一起配置,若只配置了requests,而不配置limits,则很可能导致Pod会吃掉所有资源。


4,重启策略(restartPolicy):
	Always:当容器终止退出后,总是重启容器,默认策略。
	OnFailure:当容器异常退出(退出状态码非0)时,才重启容器。
	Never:当容器终止退出,从不重启容器。

5,健康检查(Probe):
Probe有以下两种类型:
 livenessProbe(存活检查)
		如果检查失败,将杀死容器,根据Pod的restartPolicy来操作。
 readinessProbe(就绪检查)
		如果检查失败,Kubernetes会把Pod从service endpoints中剔除。
		
Probe支持以下三种检查方法:
 httpGet
		发送HTTP请求,返回200-400范围状态码为成功。
 exec
		执行Shell命令返回状态码是0为成功。
 tcpSocket
		发起TCP Socket建立成功。
		
6,调度约束:
	nodeName用于将Pod调度到指定的Node名称上 
	nodeSelector用于将Pod调度到匹配Label的Node上
	
	
	
	
	
[root@centos7 demo]# 
[root@centos7 demo]# cat c.yml 
apiVersion: v1
kind: Pod
metadata:
  name: pod-example
  labels:
    app: nginx
spec:
  nodeSelector:
    team: a
  containers:
  - name: nginx
    image: nginx:1.15
[root@centos7 demo]# 
[root@centos7 ~]# 
[root@centos7 ~]# kubectl label nodes k8s-node1 team=a
node/k8s-node1 labeled
[root@centos7 ~]# 
[root@centos7 ~]# kubectl label nodes k8s-node2 team=b
node/k8s-node2 labeled
[root@centos7 ~]#
[root@centos7 ~]# kubectl get nodes --show-labels
NAME          STATUS   ROLES    AGE    VERSION   LABELS
k8s-master1   Ready       5d3h   v1.16.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master1,kubernetes.io/os=linux
k8s-node1     Ready       5d3h   v1.16.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node1,kubernetes.io/os=linux,team=a
k8s-node2     Ready       5d3h   v1.16.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node2,kubernetes.io/os=linux,team=b
[root@centos7 ~]#
	
	
	
	
	
	
	
	

  

你可能感兴趣的:(13, k8s 的资源限制)