- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Kubernetes的引导加载代码摘要》.pdf
Kubernetes的引导加载代码摘要
main函数, hyperkube结构, Server抽象结构, APIServer, CMServer,
SchedulerServer, ProxyServer, KubeletServer实现
1. 在Docker容器里运行Kubernetes v1.0
运行kubernetes大致包括:
● 第一个容器启动etcd服务, etcd是集群配置管理器
● 第二个容器启动kubelet, kubelet是管理POD的核心程序
● 第三个容器启动一个POD, 该POD是kubernetes的master
● 第四个容器启动controller, 是master的核心组件 平台控制器
● 第五个容器启动scheduler, 是master的核心组件 平台调度器
● 第六个容器启动apiserver, 是master的REST api服务接口
● 第七个容器启动proxy,是提供通过外部网络访问平台内应用的网络服务,简单类比,就
是为www服务器配置一个Internet地址供用户访问。
在Docker里运行Kubernetes可以降低分布式系统设备的投入. 如果有足够的虚拟机, 可以实验真实
的分布式系统.
详细的指南, 可参考kubernetes.io上的文档 Running Kubernetes locally via Docker. 该文档也
可以在上的kubernetes仓库( .../docs/gettingstartedguides/docker.md )上找到.
从第二个容器到第六个容器, 是由文档中所述的Step Two: Run the master完成:
docker run --net=host --privileged -d -v /sys:/sys:ro -v
/var/run/docker.sock:/var/run/docker.sock
gcr.io/google_containers/hyperkube:v1.0.1 /hyperkube kubelet
--api-servers=http://localhost:8080 --v=2 --address= --enable-server
--hostname-override= --config=/etc/kubernetes/manifests
这是一个docker run命令:
● net参数为容器使用host模式 (相对于bridge模式)
● privileged参数为容器解除Linux的AppArmor (Debian系列) 或SELinux (Redhat系列)的访问
限制
● d参数为容器运行在后台模式, 即无控制台,
● v参数为容器挂在一个卷设备, 这里将docker服务的unix socket挂载到容器里, 目的是使容器运
行的kubernetes可以通过socket连接调用Docker的remote api
● gcr.io/google_containers/hyperkube:v0.21.2是容器使用的镜像, 不在docker hub上,而在
google cloud platform上 (gcr.io)
● /hyperkube kubelet … 一直到结束,是容器创建成功后,自动执行的程序hyperkube,在容器
的/目录下,即是启动kubernetes的master
有关docker run命令可参考Docker的文档 Docker run reference, 编程参考create api和start api.
2. hyperkube程序
Kyperkube程序由main.go, hyperkube.go, server.go...等作为引导加载代码,在仓库的
cmd/hyperkube目录下.
2.1. main函数 (main.go)
程序入口:
● 创建hyperkube结构:
hk := HyperKube{...}
● 调用hyperkube的AddServer方法:
hk.AddServer(NewKubeAPIServer()) // 创建kuber api ser
您可能关注的文档
- 《GBZ 6113.403-2016 无线电骚扰和抗扰度测量设备和测量方法规范 第4-3部分不确定度、统计学和限值建模 批量产品的EMC符合性确定的统计考虑》.pdf
- 《GEO:2015年在线旅游行业洞察报告》.pdf
- 《GPRS远程安防监控系统的应用设计》.pdf
- 《Green House Bop商业计划》.ppt
- 《GRE_Issue高频题目总结》.pdf
- 《GWI:2015年Q3全球社交网络调查报告》.pdf
- 《Hadoop源代码分析完整版》.pdf
- 《Honeywell HVP系列数字总线可视对讲及安防系统产品目录》.pdf
- 《HONEYWELL安防集团介绍及成功案例》.pdf
- 《HRZY-WI-YY01 项目开发计划管理作业指引》.doc
文档评论(0)