K8S问与答(持续更新)
问题:Kubenertes资源分配之Request和Limit解析
解答:如果k8s部署的时候开了profile, 所以用的都是limit字段, 不是request字段。
Limit: 容器能使用资源的资源的最大值,设置为0表示使用资源无上限。
Request: 容器使用的最小资源需求,作为容器调度时资源分配的判断依赖。只有当节点上可分配资源量>=容器资源请求数时才允许将容器调度到该节点。但Request参数不限制容器的最大可使用资源。
Request能够保证Pod有足够的资源来运行,而Limit则是防止某个Pod无限制地使用资源,导致其他Pod崩溃。两者之间必须满足关系: 0<=Request<=Limit<=Infinity (如果Limit为0表示不对资源进行限制,这时可以小于Request)
参考:https://blog.csdn.net/qq_38391495/article/details/71598803
问题:iptables 规则
问题:获取集群node信息
解答:当我们ssh root@xxx.xxx.xx.xxx, 输入kubectl get nodes得到节点信息,需要注意的是当前执行命令的地方并不是以下节点。我们是通过K8S命令行工具kubectl远程管理集群的。 执行kubectl cluster-info可以看到集群信息。
问题:Pod是什么
解答:Pod是容器的集合,通常会将紧密相关的一组容器放到一个Pod中,同一个Pod中的所有容器共享IP地址和Port空间,他们在同一个network namespace中。
Pod是k8s调度的最小单位,同一Pod中的容器始终被一起调度。
运行kubectl get pods,查看当前的Pod有哪些。
运行k describe pods,查看当前的pod信息
问题:如何访问应用
解答:默认情况下,pod只能在集群内部访问。如果想从外部访问应用,需要将容器的端口映射到节点的端口。使用kubectl get services. 可以查看到应用被映射到节点的哪个端口。
scale describe scale down问题:Scale应用增加副本数量&k8s是如何实现负载均衡的
解答:默认情况下应用只会运行一个副本,可以通过kubectl get deployments查看副本数。
执行命令: kubectl scale deployments/$(deployment name) --replicas=3(你想要改成的nuber数量)
然后执行:kubectl get pods 可以看到当前pod增加到3个。
通过curl访问应用,可以看到每次请求发送到不同的Pod, 3个副本轮询处理,这样就实现了负载均衡。
scale down:减少副本数量,详情参照下图。
持续更新。。。。。