首页 > 其他分享 >k8s etcd operator

k8s etcd operator

时间:2023-08-12 16:11:31浏览次数:44  
标签:Etcd Operator 集群 etcd operator k8s example

在k8s生态中,Operator是灵活管理有状态应用的解决方案。
operator通过crd来描述部署的有状态应用和自定义控制器来完成部署和运维工作。

EtcdOperator部署Etcd集群,采用的是静态集群的方式。好处是不必依赖一个额外的服务发现机制来组建集群,适合本地容器化部署。难点在于部署时规划好集群的拓扑结构,知道IP地址。

git clone https://github.com/coreos/etcd-operator
cd etcd-operator
bash example/rbac/create_role.sh
kubectl create -f example/deployment.yaml
kubectl apply -f example/example-etcd-cluster.yaml

有1个etcd-operator Pod和3个etcd Pod构成的etcd集群(省略备份和恢复operator)

Etcd Operator里为什么使用随机名字,而不是有状态应用Pod名字-0/-1?
EtcdOperator在每次添加Etcd节点时,执行etcdctl member add <Pod名字>;每次删除节点时,执行etcdctl member remove <Pod名字>。这些操作会更新Etcd内部维护的拓扑信息,所以EtcdOperator无需在集群外部通过有状态应用编号来固定这个拓扑关系。

原理上,operator和自定义控制器等价。
Operator和StatefulSet不是竞争关系。可以在Operator的控制循环里创建和控制StatefulSet而不是Pod。业界知名的Prometheus项目的Operator就是这么实现的。

参考资料
《深入剖析Kubernetes》

标签:Etcd,Operator,集群,etcd,operator,k8s,example
From: https://www.cnblogs.com/WJQ2017/p/17624955.html

相关文章

  • 安装etcd服务
    #下载etcd-v3.4.27wgethttps://github.com/etcd-io/etcd/releases/download/v3.4.27/etcd-v3.4.27-linux-arm64.tar.gz################################################方式1:#etcd服务的配置文件都定义在etcd.service中#在etcd.conf文件中少体现###############......
  • k8s finalizers和owner references
    finalizers终结器,存放键的列表,列表内的键为空时资源才可被删除。删除指定了Finalizer的对象时,填充.metadata.deletionTimestamp来标记要删除的对象,返回已接受202状态码使其进入只读状态。#创建包含finalizers的configmapcat<<EOF|kubectlcreate-f-apiVersion:v1kind:......
  • k8s 网络模型
    容器网络通信模式在Host模式中,各容器共享宿主机的根网络名称空间,它们使用同一个接口设备和网络协议栈,因此,用户必须精心管理共享同一网络端口空间容器的应用与宿主机应用,以避免端口冲突。Bridge模式对host模式进行了一定程度的改进,在该模式中,容器从一个或多个专用网络(地址池)中获取IP......
  • k8s 容器安全上下文
    容器安全上下文介绍kubernetes为安全运行pod及容器运行设计了安全上下文机制,该机制允许用户和管理员定义pod或容器的特权与访问控制,已配置容器与主机以及主机之上的其它容器间的隔离级别。安全上下文就是一组用来决定容器时如何创建和运行的约束条件,这些条件代表创建和运行容器时使......
  • k8s 准入控制器之ResourceQuota
    资源配额概述尽管LimitRange资源能在名称空间上限制单个容器、Pod或PVC相关的系统资源用量,但用户依然可以创建出无数的资源对象,进而侵占集群上所有的可用系统资源。ResourceQuota资源能够定义名称空间级别的资源配额,从而在名称空间上限制聚合资源消耗的边界,它支持以资源类型来限制......
  • k8s 准入控制器之LimitRanger
    LimitRanger概述尽管用户可以为容器或Pod资源指定资源需求及资源限制,但这并非强制性要求,那些未明确定义资源限制的容器应用很可能会因程序Bug或真实需求而吞掉本地工作节点上的所有可用计算资源。因此妥当的做法是,使用LimitRange资源在每个名称空间中限制每个容器的最小及最大计算......
  • k8s 网络模型
    容器网络通信模式在Host模式中,各容器共享宿主机的根网络名称空间,它们使用同一个接口设备和网络协议栈,因此,用户必须精心管理共享同一网络端口空间容器的应用与宿主机应用,以避免端口冲突。Bridge模式对host模式进行了一定程度的改进,在该模式中,容器从一个或多个专用网络(地址池)中获取IP......
  • k8s实战案例之运行dubbo微服务
    1、dubbo微服务架构图通过上述架构可以了解到,生产者通过注册中心,将服务注册至注册中心,消费者通过注册中心找到生产者,从而实现消费者拿到生产者的实际地址,然后直接和生产者通信;管理端通过注册中心发现生产者和消费者,通过svc来管理生产者和消费者;集群外部客户端通过负载均衡器来......
  • k8s 网络模型
    容器网络通信模式在Host模式中,各容器共享宿主机的根网络名称空间,它们使用同一个接口设备和网络协议栈,因此,用户必须精心管理共享同一网络端口空间容器的应用与宿主机应用,以避免端口冲突。Bridge模式对host模式进行了一定程度的改进,在该模式中,容器从一个或多个专用网络(地址池)中获......
  • k8s jenkines kubesphere 部署流水线样例
    pipeline{agent{node{label'maven'}}stages{stage('拉取代码'){agentnonesteps{container('maven'){git(url......