关于k8s相关的一些基础知识

k8s相关问题

关键组件

Kubernetes的关键组件主要包括以下几个:

  1. Kubernetes API Server:Kubernetes API Server是集群控制的入口,它接收REST请求并将其转换为内部操作。
  2. etcd:etcd是一个分布式键值对存储系统,用于存储Kubernetes集群中的所有配置数据。
  3. Kubernetes Controller Manager:Kubernetes Controller Manager负责管理Kubernetes集群中的各种控制器,例如deployment、replication controller等。
  4. Kubernetes Scheduler:Kubernetes Scheduler负责将新创建的Pod调度到可用的节点上。
  5. kubelet:kubelet是运行在每个节点上的代理程序,负责与API Server交互并维护该节点上的容器。
  6. Kubernetes Proxy:Kubernetes Proxy负责在集群内部实现服务发现和负载均衡。

这些组件一起工作以管理容器化应用程序的生命周期,并提供高可用性和自动伸缩等功能。


k8s控制器

  1. ReplicaSet控制器(ReplicaSet Controller):负责在任何时刻都有指定数量的Pod副本运行。如果某个Pod失败或被删除,ReplicaSet Controller将会自动创建新的Pod副本以确保满足指定的副本数量。
  2. Deployment控制器(Deployment Controller):可以创建和更新应用的多个版本,并通过滚动升级或回滚方式进行版本切换,从而实现无需中断地进行应用程序更新的目标。
  3. StatefulSet控制器(StatefulSet Controller):与ReplicaSet控制器类似,但它确保每个Pod都具有唯一的标识符。它适用于有状态服务的场景,例如数据库、缓存等。
  4. DaemonSet控制器(DaemonSet Controller):确保每个节点上都运行有一个Pod实例,该Pod实例与节点绑定。它适用于需要在Kubernetes集群中的每个节点上运行的后台任务,例如日志收集器、监视代理等。
  5. Job控制器(Job Controller):用于管理短暂任务,例如批处理任务或Cron作业等。Job Controller确保每个任务只运行一次,并在任务完成后终止相关Pod。
  6. CronJob控制器(CronJob Controller):基于cron表达式配置的定时任务控制器,用于定期执行一些操作。

k8s资源类型

Kubernetes中有许多不同类型的资源对象,每种资源对象都代表了一个可管理的构建块。以下是Kubernetes中常见的资源类型:

  1. Pod(Pod):最小单位的部署单元,可以包含一个或多个紧密耦合的容器。
  2. Service(服务):定义一组Pod的访问方式,通过定义标签选择器和端口,将请求路由到匹配的Pod副本上。
  3. Volume(卷):用于将存储挂载到容器内部,可以是空白目录、主机文件系统、网络存储等。
  4. Namespace(命名空间):用于在集群中创建虚拟的分组环境,以便更好地进行管理和隔离。
  5. ConfigMap(配置映射):用于保存应用程序配置信息,例如数据库连接字符串、环境变量等。
  6. Secret(密钥):用于保存敏感信息,例如密码、API密钥等。

除了上述资源类型之外,Kubernetes中还有许多其他类型的资源对象,例如Deployment(部署)、ReplicaSet(副本集)、StatefulSet(有状态集)、DaemonSet(守护进程集)、Job(作业)、CronJob(定时任务)等。这些资源类型共同构成了Kubernetes应用程序所需的各种组件和功能,并提供了高可用性、自动化扩展、负载均衡、自动恢复等功能。


Pod的状态

Pod是Kubernetes中最小的可调度单元,它可以包括一个或多个容器。Pod有几种不同的状态,以下是Pod可能处于的状态:

  1. Pending(等待):表示Pod正在被调度到某个节点上,但还没有分配到可用的节点。
  2. Running(运行中):表示Pod已经在节点上成功创建并启动了所有容器。
  3. Succeeded(已完成):表示Pod中的所有容器都已成功执行完毕,并且不会再重启。/或 complete
  4. Terminating(正在终止)状态,表示Pod已经被删除并且正在清理过程中。
  5. Failed(失败):表示Pod中的至少一个容器已经终止,并且不会重新启动。/或Erro
  6. Unknown(未知):表示无法获取Pod的状态信息。

在实际应用场景中,Pod的状态通常会发生变化,例如Pending状态可能转变为Running状态、Failed状态可能转变为Succeeded状态等。Kubernetes通过监测Pod的状态并采取相应的措施来确保应用程序的持续正常运行。例如,在Pod处于Pending状态时,Kubernetes将尝试将其调度到其他可用节点上,以确保Pod能够成功运行。


yaml常用标签

Kubernetes中使用YAML文件来定义和配置各种资源对象。下面列出了Kubernetes YAML文件中常用的标签:

  1. apiVersion:指定所使用的Kubernetes API版本。
  2. kind:指定资源对象类型,例如Pod、Service、Deployment等。
  3. metadata:指定元数据信息,例如名称、标签、注释等。
  4. spec:指定资源对象的规格,例如容器镜像、端口、挂载卷等。
  5. containers:用于指定Pod中包含的一个或多个容器。
  6. image:指定容器所使用的镜像名称。
  7. ports:指定容器使用的端口号和协议类型。
  8. volumeMounts:指定容器需要挂载的存储卷。
  9. volumes:指定Pod需要使用的存储卷。

除了上述标签之外,Kubernetes中还有许多其他标签可用于定制化资源对象和应用程序环境。例如,env标签可以用于指定容器需要使用的环境变量;selector标签可以用于选择需要关联的其他资源对象(如Service和Pod);replicas标签可以用于指定副本数量等。在创建Kubernetes资源对象之前,建议先查阅官方文档以了解更多详细信息和最佳实践。


新问,prometheus 告警静默期,收敛规则


kafka ack设置


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值