概述
谷歌云平台自身如何使用Kubernetes?
关注世界领先 DevOps 平台 JFrog
关于Kubernetes

Kubernetes是谷歌内部容器管理平台 Borg 的升级版。Kubernetes解决了很多 Docker 自身固有的问题。可以通过 Kubernetes 挂载数据盘来持久化数据,使用flannel创建容器间的网络,同时集成了负载均衡,使用etcd 进行服务发现。它的特性包括:
1. 容器的基础架构
2. 轮询,管理容器,支持虚拟机和物理机
3. 平台自动化部署,扩容和运维
4. 根据 google 内部系统的经验研发
5. 100%开源,使用 Go 语言
1
谷歌云平台和 Kubernetes

最开始,谷歌云平台采用虚机镜像的方式,维护一个又一个的镜像,镜像里包含了所有的可执行文件,配置,共享包已经流程生命周期管理软件。
虽然是不可变虚机镜像,也能支持可预测的回滚,但是镜像太重,复制成本太高而无法实现秒级动态扩容,以及自动故障恢复。

现在,谷歌里所有的东西都跑在容器里,每周会启动20亿个容器。

从程序猿的视角来看,如果你需要发布一个服务,你只需要声明服务的依赖,运行时环境,二进制文件地址,以及发布服务的数量,你就可以快速上线多个服务的实例,运行在负载均衡之后。

2
达到今天的容器管理能力,
谷歌云也经历了一系列的技术演进。

看看Borg(Kubernetes 的前身) 时代的谷歌云平台架构
1. 从某个仓库拉取依赖和需要部署的包。
2. 将配置文件传给 BorgMaster。
3. Scheduler 定期轮询 BorgMaster 里的任务,典型的生产者/消费者模式。
4. 找到空闲的 Borglet,执行配置文件指定的任务。这样就产生,并运行了无数个微服务。
从Borg 到 Kubernetes ,谷歌云发生了一系列技术演进。

1. 把镜像存储换成了Artifactory,通过 Artifactory拉取容器镜像
2. 将配置文件发送到 Kubernetes Master
3. Scheduler 进行轮询调度
找到空闲的 Kubelet 执行指定任务
程序猿的视角

程序猿可以通过 Kubernetes按需扩容,实现失败节点自动重启。
3
实战Kubernetes构建云原生应用

这是初始状态的节点:

执行 kubectl run,可以运行指定的镜像,并且app 的参数可以加上 visualize=true 等来过滤你的目标 app。在谷歌云平台多产品流水线上,这个功能尤其有用,能够让你通过脚本找到你需要自动上线的包,实现动态扩容。

Kubernetes 会实时监控实例的状态,当某一个实例挂掉时,Kubernetes 会为你重启这个实例。
如果你需要水平扩展多个实例,可以执行 Kubectl scale deployment app –replicas=2, 这表明你需要将实例个数扩展到2个,Kubernetes 会实时扩展两个实例。

你也可以加上负载均衡来绑定固定 IP 和端口。Kubernetes 自身支持了负载均衡的服务。

当然,作为一个云原生应用,你的应用需要依赖其他的服务,比如 Redis,Mysql 等等。这些服务是按需获取,不应该绑定某个连接信息,而是应该动态获取。
那么这些服务的镜像从哪里下载呢?
4
使用 Artifactory 作为
Kubernetes 的私有镜像仓库
HELM是 Kubernetes 项目的子模块。Github地址:https://github.com/kubernetes/helm,可以用来管理Kubernetes Charts。Charts 是预先配置Kubernetes 资源包。
使用 Helm 可以:
· 找到并使用 最流行的Kubernetes Charts软件包
· 将自己的软件包以 Charts 的形式分享出去
· 为 Kubernetes 应用创建可复用的构建
· 智能的管理 Kubernetes 的manifest 文件
· 管理 Helm包的发布
HELM CHARTS长什么样?

可以看到它提供了镜像的名称,版本,依赖声明,以及源文件地址。有了这些信息,Kubernetes 知道从哪里获取这个镜像的依赖,并完成镜像的创建。

如何存储这些 charts 呢?Kubernetes 提供 Helm 的仓库,来支持私有的镜像仓库。
谷歌云平台使用 Artifactory 作为 Helm 仓库,Artifactory 提供了 Helm 仓库的支持,同时,也将所有的 Docker 镜像存储在 Artifactory,作为本地私有的镜像中心。
总结
谷歌云平台基于 Kubernetes 搭建,目前能够支持每周启动20亿次服务,动态扩容,故障自动恢复,利用本地镜像私服(Artifactory)快速构建镜像,一旦云平台需要扩容,或者实现故障恢复,Artifactory 作为镜像中心始终提供可靠的服务,从而使得谷歌云平台上的应用时刻具备响应大规模并发请求的能力。
关于JFrog
公司成立于2008年,在美国、以色列、法国和西班牙,中国北京市拥有超过200名员工。JFrog 拥有3000多个付费客户,其中知名公司包括如Netflix、思科、谷歌、亚马逊。最近,JFrog 连续第二年被德勤评选为50家增长最快的技术公司之一,还被评为硅谷增长最快的私营企业之一。
最后
以上就是光亮硬币为你收集整理的谷歌云平台自身如何使用Kubernetes?的全部内容,希望文章能够帮你解决谷歌云平台自身如何使用Kubernetes?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复