【Kubernetes】知识点总结5
50. 解释ResourceQuota的作用。
答:资源配额可以对每个命名空间的资源消耗总量提供限制。它可以限制命名空间中某种类型对象的总的数目上限,也可以限制命名空间中的Pod可以使用的计算资源的总上限。来实现资源的合理分配。
51. 解释Service Account的用途。
答:为了方便Pod里面的进程调用 Kubernetes API 或其它外部服务而设计的。每个namespace都会自动创建一个default service account。用于为集群内运行的Pod或应用程序提供身份标识和访问权限的机制,专门用于服务间的身份验证和授权。
52. 详细解释Role和ClusterRole。
答:Role和ClusterRole是基于RBAC(角色的访问控制)机制的核心组件,其中包含一组代表相关权限的规则,用于定义 “允许执行哪些操作”。 Role总是用来在某个命名空间内设置访问权限,在创建Role时,必须指定该Role所属的命名空间。ClusterRole则是一个集群作用域的资源。这两种资源的名字不同(Role和ClusterRole)是因为Kubernetes对象要么是命名空间作用域的,要么是集群作用域的,不可两者兼具。如果希望在命名空间内定义角色,就应该使用 Role,如果希望定义集群范围的角色,则应该使用ClusterRole。
53. 什么是K8s的NetworkPolicy?
答:NetworkPolicy是一种用于定义Pod之间网络通信规则的资源对象,它基于策略对Pod的入站(Ingress)和出站(Egress)流量进行精细化控制,仅允许符合规则的流量在Pod之间或Pod与外部服务之间传输。比如希望针对 TCP、UDP 和 SCTP 协议在 IP 地址或端口层面控制网络流量,那么就可以考虑为集群中特定应用使用 Kubernetes 网络策略(NetworkPolicy)。NetworkPolicy是一种以应用为中心的结构,允许设置如何允许 Pod 与网络上的各类网络“实体”通信。NetworkPolicy 适用于一端或两端与 Pod 的连接,与其它连接无关。Pod 可以与之通信的实体是通过被允许的Pod、被允许的命名空间以及IP组块的组合来辩识的。
54. 详细描述在K8s中如何控制跨Namespace的Pod访问?
答:通过NetworkPolicy资源结合命名空间标签和Pod标签来实现。核心是利用namespaceSelector筛选目标Namespace,结合podSelector锁定具体Pod,并通过ingress规则定义允许的流量方向、端口和协议。从而精准控制跨Namespace流量的 “来源” 或“目标”。
55. 举例说明K8s中都有哪些常规的维护管理操作。
答:通过Metrics-server(监控组件)来监控节点资源使用率(CPU/内存/磁盘)、Pod状态(重启次数、就绪状态)。
比如设置告警规则,当节点磁盘使用率超过80%或70%、Pod重启次数异常或API Server不可用时,通过Alertmanager 发送告警(如邮件、Slack通知)。
56. 如何升级K8s到新的版本?在升级过程中应该注意哪些事项?
答:1)先确定要升级的版本;
2)禁止 Master节点接收新调度;
3)驱逐 Master节点上的现有任务;
4)安装指定版本的 kubeadm;
5)查看可升级的列表并升级集群;
6)升级 kubelet和 kubectl,首先要unhold(释放)kubelet和kubectl,然后升级;
7)恢复 Master节点的调度能力,包括hold kubelet和 kubectl,kubeadm,重载服务等。
注意事项:升级前需认真阅读官网发布的升级指南,版本升级需先升级控制平面再升级集群;避免跨多个版本升级,导致版本不兼容问题;升级前备份etcd存储的集群所有状态数据,以便升级失败时通过kubeadm upgrade undo回滚到上一版本;升级前需认真阅读官网发布的升级指南,版本升级需先升级控制平面再升级集群,最后验证是否成功升级到新版本。
57. 解释ETCD及其备份和恢复的过程。
答:备份:首先先安装etcd客户端,然后用etcdctl指定ETCD 服务的访问地址,CA根证书的路径,客户端访问ETCD的证书文件,与上述证书匹配的私钥文件,用快照备份,将备份数据保存到指定文件中。
恢复:首先停止服务用mv改名的方法将数据存储到另一个文件中,然后删除(mv)现有ETCD,并恢复数据,最后恢复服务并验证。
58. Kustomization在Kubernetes中的作用。
答:Kustomization是Kubernetes中用于管理资源配置文件的工具,它通过声明式的方式对Kubernetes资源进行定制和组合。实现了配置的复用、简化和集中管控,特别适合多环境部署场景。其核心作用是简化不同环境下Kubernetes资源配置的复用、定制和管理。