etcd

k8s集群构建

倾然丶 夕夏残阳落幕 提交于 2021-01-13 06:47:39
1.什么是kubernetes?  Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg)。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。 2.kubernetes核心组件说明: Kubernetes 集群中主要存在两种类型的节点,分别是 master 节点,以及 minion 节点。 Minion 节点是实际运行 Docker 容器的节点,负责和节点上运行的 Docker 进行交互,并且提供了代理功能。 Master 节点负责对外提供一系列管理集群的 API 接口,并且通过和 Minion 节点交互来实现对集群的操作管理。 apiserver:用户和 kubernetes 集群交互的入口,封装了核心对象的增删改查操作,提供了 RESTFul 风格的 API 接口,通过 etcd 来实现持久化并维护对象的一致性。 scheduler:负责集群资源的调度和管理,例如当有 pod 异常退出需要重新分配机器时,scheduler 通过一定的调度算法从而找到最合适的节点。 controller-manager:主要是用于保证 replicationController 定义的复制数量和实际运行的 pod 数量一致,另外还保证了从 service 到 pod

复杂环境下落地Service Mesh的挑战与实践

寵の児 提交于 2021-01-13 04:33:49
总第426 篇 2020年 第50篇 在私有云集群环境下建设 Service Mesh ,往往需要对现有技术架构做较大范围的改造,同时会面临诸如兼容困难、规模化支撑技术挑战大、推广困境多等一系列复杂性问题。本文会系统性地讲解在美团在落地 Service Mesh 过程中,我们面临的一些挑战及实践经验,希望能对大家有所启发或者帮助。 一、美团服务治理建设进展 1.1 服务治理发展史 首先讲一下 OCTO,此前美团技术团队博客也分享过很多相关的文章,它是美团标准化的服务治理基础设施,现应用于美团所有事业线。OCTO 的治理生态非常丰富,性能及易用性表现也很优异,可整体概括为 3 个特征: 属于公司级的标准化基础设施。技术栈高度统一,覆盖了公司 90% 以上的应用,日均调用量达数万亿次。 经历过较大规模的技术考验。覆盖数万个服务、数十万个节点。 治理能力丰富。协同周边治理生态,实现了 SET 化、链路级复杂路由、全链路压测、鉴权加密、限流熔断等治理能力。 回顾美团服务治理体系的发展史,历程整体上划分为四个阶段: 第一阶段是基础治理能力统一 。实现通信框架及注册中心的统一,由统一的治理平台支撑节点管理、流量管理、监控预警等运营能力。 第二阶段重点提升性能及易用性 。4 核 4GB 环境下使用 1KB 数据进行 echo 测试,QPS 从 2 万提升至接近 10 万,99 分位线 1ms

微众银行案例|容器化实践在金融行业落地面临的问题和挑战

邮差的信 提交于 2021-01-12 07:48:00
本文整理自 微众银行容器负责人陈广镇和李焕 在 Techo 开发者大会云原生专题的分享内容——微众容器化实践。本文主要和大家介绍微众的容器化实践,具体分为三个部分: 里程碑、实践之路,以及未来的规划 。 微众应用容器化项目始于2018年底,我们的生产环境在私有机房上,由于基础设施的差异,容器管理系统主要走自研路线,基于开源产品定制。 2019年1月,微众上线了第一个版本,主要实现多K8s集群管理、以及适配公司现有的基础架构。 2019年2月,微众系统接入TKE服务,用于快速构建开发测试环境,我们大部分业务都需要独立的测试环境,利用腾讯云强大的伸缩能力可以减少我们很多的环境维护工作。 2019年6月,平台优化了核心的调度逻辑,支持了多业务多DCN共享资源池,提升了私有云资源交付的效率。 2019年12月,微众研发了一套统一的通用的运维服务,这套服务收敛过去各式各样的运维工具,并且增加了金融级的安全管理,优化了K8s执行命令的性能问题。 2020年年初,启动了全量应用容器化项目,现在已经有超过一半的实例跑在了容器上。其中就包括我们的核心金融系统。 2020年年中,平台开始了2.0的迭代,包括定制化Harbor、应用画像、通用Operator API等特性。 未来微众在容器化上小小的积累通过开源的方式贡献给社区。 下面部分我们介绍一下容器化实践中遇到的问题和解决方案。 首先

Nacos Go 微服务生态系列(一)| Dubbo-go 云原生核心引擎探索

我与影子孤独终老i 提交于 2021-01-09 23:55:06
简介: 作为微服务框架的核心引擎--注册中心,是必不可缺少的组件,市面已经有多款注册中心支持 Go 语言,应该如何选择呢?我们可以对目前主流的支持 Go 语言的注册中心做个对比。 作者 | 李志鹏 近几年,随着 Go 语言社区逐渐发展和壮大,越来越多的公司开始尝试采用 Go 搭建微服务体系,也涌现了一批 Go 的微服务框架,如 go-micro、go-kit、Dubbo-go 等,跟微服务治理相关的组件也逐渐开始在 Go 生态发力,如 Sentinel、Hystrix 等都推出了 Go 语言版本,而作为微服务框架的核心引擎--注册中心,也是必不可缺少的组件,市面已经有多款注册中心支持 Go 语言,应该如何选择呢?我们可以对目前主流的支持 Go 语言的注册中心做个对比。 图 1 根据上表的对比我们可以从以下几个维度得出结论: 生态 :各注册中心对 Go 语言都有支持,但是 Nacos、 Consul、Etcd 社区活跃,zookeeper 和 Eureka 社区活跃度较低; 易用性 :Nacos、Eureka、Consul 都有现成的管控平台,Etcd、zookeeper 本身作为 kv 存储,没有相应的管控平台,Nacos 支持中文界面,比较符合国人使用习惯; 场景支持 :CP 模型主要针对强一致场景,如金融类,AP 模型适用于高可用场景,Nacos 可以同时满足两种场景

Nacos Go微服务生态系列(一) | Dubbo-go 云原生核心引擎探索

江枫思渺然 提交于 2021-01-09 22:57:56
作者:李志鹏, Github账号:Lzp0412,开源社区爱好者,Nacos Committer,Nacos-SDK-go作者,现就职于阿里云云原生应用平台,主要参与服务发现、CoreDNS、ServiceMesh相关工作,负责推动Nacos Go微服务生态建设。 近几年,随着Go语言社区逐渐发展和壮大,越来越多的公司开始尝试采用Go搭建微服务体系,也涌现了一批Go的微服务框架,如go-micro、go-kit、Dubbo-go等,跟微服务治理相关的组件也逐渐开始在Go生态发力,如Sentinel、Hystrix等都推出了Go语言版本,而作为微服务框架的核心引擎--注册中心,也是必不可缺少的组件,市面已经有多款注册中心支持Go语言,应该如何选择呢?我们可以对目前主流的支持Go语言的注册中心做个对比。 根据上表的对比我们可以从以下几个维度得出结论: 生态: 各注册中心对Go语言都有支持,但是Nacos、 Consul、Etcd 社区活跃,zookeeper和Eureka社区活跃度较低; 易用性: Nacos、Eureka、Consul都有现成的管控平台,Etcd、zookeeper本身作为kv存储,没有相应的管控平台,Nacos支持中文界面,比较符合国人使用习惯; 场景支持: CP模型主要针对强一致场景,如金融类,AP模型适用于高可用场景,Nacos可以同时满足两种场景,Eureka

Raft中的领导选取

时光怂恿深爱的人放手 提交于 2021-01-08 18:35:00
Raft 是一种用来管理日志复制的一致性算法。为了提高理解性,Raft 将一致性算法分为了几个部分,例如领导选取(leader selection),日志复制(log replication)和安全性(safety),同时它使用了更强的一致性来减少了必须需要考虑的状态。 本文我们主要介绍领导领导选取部分的内容。 备注:这里的一致性是强一致性。 1.服务器状态 每台服务器一定会处于三种状态: 领导者、 候选人、 追随者,如下图所示。 介绍如下: 追随者只响应其他服务器的请求。 如果追随者没有收到任何消息,它会成为一个候选人并且开始一次选举。 收到大多数服务器投票的候选人会成为新的领导人。 领导人在它们宕机之前会一直保持领导人的状态。 2.任期(Term) Raft 算法将时间划分成为任意不同长度的任期(term),任期用连续的数字进行表示。 每一个任期的开始都是一次选举(election),一个或多个候选人会试图成为领导人。如果一个候选人赢得了选举,它就会在该任期的剩余时间担任领导人。 在某些情况下,选票会被瓜分,有可能没有选出领导人,那么,将会开始另一个任期,并且立刻开始下一次选举。 Raft 算法保证在给定的一个任期最多只有一个领导人。 3.raft的leader选举过程 1)何时发起选举 集群开始时,所有服务器都是follower,当服务器在指定的时间之内没有收到

【深度】Kubernetes v1.16 最值得工程师关注的改动

≯℡__Kan透↙ 提交于 2021-01-07 04:47:44
昨天,Kubernetes 发布 2019 年的第三个新版本 1.16,才云第一时间对新版本重要更新做了精选整理,之后这篇文章 被 CNCF 转发 。经过一天的升级体验和对文档的细致阅读,才云现推出 Kubernetes v1.16 深度解读,以飨读者! 发布 | 才云 Caicloud 编译 | littlepoint & zls & bot 审核 | ddysher 随着周三官方发布的 Kubernetes v1.16 进入普遍可用状态,相信很多读者已经体验了由新版本带来的诸多新变化。在官方文档中,开发团队表示 新版本主要围绕以下四个主题 : CRD 正式步入通用可用性(GA); Admission webhook 正式步入 GA; 关于 metrics 的改动; 大量和 Volume 相关的改进。 以上我们已在昨天做了 详细介绍 (点击跳转)。 而除此之外,Kubernetes v1.16 中的其他更新,如对 Windows 支持的改进、API 变化等,也非常有价值,它们显示了开发团队对增强 Kubernetes 可扩展性 的一贯努力。 在这篇文章中,才云工程师将从实践角度出发,总结对新版本的心得。 01 节点 新版本对 K8s-clusters 节点(Kubelet)做了很多相关改进和创新,如 Ephemeral Containers(短暂容器)、节点拓扑管理器和

Kubernetes v1.16 重磅发布 | 新版本亮点 & 紧急升级说明

旧时模样 提交于 2021-01-07 04:29:26
来源:GitHub 翻译:bot(才云) 技术校对:Lichuan(才云) 美国时间 9 月 18 日,Kubernetes 迎来了 2019 年的第三个新版本 1.16 。K8sMeetup 中国社区第一时间整理了 Kubernetes v1.16 的亮点内容,为大家详细介绍此版本的主要功能。 根据 Release Note 介绍, Kubernetes v1.16 由 31 个增强功能组成: 8 个进入稳定,8 个进入 Beta,15 个进入 Alpha 。 新版本四大主题 新版本主要围绕以下主题: Custom resources :CRD 是对 Kubernetes 的扩展,用以服务于新的资源类型,自 1.7 版本以来,CRD 已经在 Beta 版中可用。 在 1.16 版本中,CRD 正式步入通用可用性(GA) 。 Admission webhook :Admission webhooks 作为 Kubernetes 扩展机制被广泛使用,并且自 1.9 版本以来已经在 Beta 版中可用。 在 1.16 版本中,Admission webhook 也正式步入通用可用性(GA) 。 Overhauled metrics : Kubernetes 广泛使用一个全局 metrics registry 来注册要公开的 metrics 。通过实现 metrics registry

Docker Kubernetes 环境搭建

久未见 提交于 2021-01-06 19:00:27
Docker Kubernetes 环境搭建 节点规划 版本 系统 :Centos 7.4 x64 Docker版本: 18.09.0 Kubernetes版本: v1.8 etcd存储版本 :etcd-3.2.22 部署 管理节点 :192.168.1.79 安装插件:etcd 安装插件:kube-apiserver 安装插件:kube-controller-manager 安装插件:kube-scheduler 工作节点 :192.168.1.78 安装插件:kubelet 安装插件:kube-proxy 安装插件:docker 工作节点 :192.168.1.77 安装插件:kubelet 安装插件:kube-proxy 安装插件:docker Kubernetes 部署方式 1、kubeadm工具快捷安装kubernetes集群。 kubeadm工具安装会屏蔽很多细节。 2、通过kubernetes二进制包安装。 kubernetes二进制包: https://github.com/kubernetes/kubernetes kubernetes是基于GO语言开发的需要安装Go语言环境。 注: 这里我采用第2种,由于安装环境繁琐,将事先编译好的Kubernetes工具包来进行环境部署。 kubernetes工具包:https://pan.baidu.com/s

阿里云环境部署k8s集群

元气小坏坏 提交于 2021-01-06 17:28:13
网上讲述如何部署k8s集群的文章很多,特别是k8s中文社区里面,每个平台的部署方式都有详细说明。但就是看了中文社区的指导,发现一路是坑,第一个源访问的时候就404 NotFound, 更别说那生涩的翻译和版本匹配问题。 如此一来还不如自己写一个。 1. 开虚机 系统环境CentOS 7.2 . 这方面不再赘述 2. 设置/etc/hosts 简单来说就是把master和minion主机都用域名在hosts文件中记录一下。 3. 集群主机都安装kubernetes和etcd 直接yum install . 安装kubernetes 时会顺带把docker等都安装上。 此文章编写时, 阿里云 的kubernetes版本为1.5.2. 这里还需要注意:应该在etcdctl中配置flannel,否则flannel无法正常启动。 [root@k8s-master home]# etcdctl set /flannel/network/config '{ "Network": "172.16.0.0/16", "SubnetLen": 24, "Backend": { "Type": "vxlan" } }' 4. 配置apiserver 按照中文社区的指导配置(但最终并没有使用该配置,看下去就知道) 修改/etc/kubernetes/apiserver 修改/etc/kubernetes