1.Pod的资源请求限制如何定义?

可以直接在pod的yaml文件中定义:

主要包括两块内容:

  1. Limit:限制pod能使用的最大cpu和内存
  2. Requests:pod启动时申请的cpu和内存

2.标签和标签选择器是什么,作用是什么?

标签:k8s中的标签是键值对,用于对资源对象进行分类和标识。

标签作用:通过为资源对象添加标签,可以更灵活地组织以及管理它们,可以根据标签进行筛选。

标签选择器:根据标签的键值对来选择特定的资源对象。

标签选择器的作用:可以根据标签的值对资源进行过滤。

3.Pod与Service的通信是怎么样的?

K8s在创建service服务时会分配一个虚拟IP,客户端通过IP访问该服务,服务则负责将请求转发到后端pod上。

Service是通过kube-proxy服务进程来实现的,该进程在每个Node上均运行,可以看作一个透明代理兼负载均衡。Kube-proxy通过iptables和ipvs实现负载均衡,实现到后端服务pod的访问转发。

4.说一下你对endpoint的理解。

Service维护一个叫endpoint的资源列表,endpoint资源对象保存着service关联的pod的ip和端口。从表面上看,当pod消失,service会在endpoint列表中删除pod。当有新pod加入,service就会将pod的ip加入endpoint列表。

5.什么是命名空间?

命名空间是一种在Kubernetes集群中创建多个虚拟集群的机制,它可以用于隔离和管理不同的应用程序,团队或环境。

6.如何进行跨集群部署和管理

Kubernetes Federation

Kubernetes Federation允许你将多个Kubernetes集群视为一个逻辑单元进行管理和部署。它支持跨集群资源分发和服务发现,使得你可以从一个控制平面管理多个集群。

使用Helm和Charts仓库

Helm是Kubernetes的一个包管理工具,可以帮助你定义、安装和升级应用程序。通过维护一套通用的Helm Charts,可以在不同的集群之间重复使用这些配置来部署相同的应用程序。

GitOps

GitOps是一种操作模型,它使用Git作为声明式基础设施和应用配置的真实来源。工具如Argo CD、FluxCD可以自动化地同步和部署你的应用到多个集群中,基于Git仓库中的配置文件。提高了透明度和可审计性,简化了CI/CD流程。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐