Kubernetes是谷歌开源的容器集群管理系统,是Google多年大规模容器管理技术Borg的开源版本,主要功能包括:
Kubernetes 发展非常迅速,已经成为容器编排领域的领导者。
Kubernetes 主要由以下几个核心组件组成:
集群是指由Kubernetes使用一系列的物理机、虚拟机和其他基础资源来运行你的应用程序
一个node就是一个运行着Kubernetes的物理机或虚拟机,并且pod可以在其上面被调度
一个pod对应一个由相关容器和卷组成的容器组
一个label是一个被附加到资源上的键/值对,譬如附加到一个Pod上,为它传递一个用户自定的并且可识别的属性。Label还可以被应用来组织和选择子网中的资源
是一个通过匹配labels来定义资源之间关系得表达式,例如为一个负载均衡的service指定所目标Pod
replication controller是为了保证一定数量被指定的Pod的复制品在任何时间都能正常工作。它不仅允许复制的系统易于扩展,还会处理当pod在机器在重启或发生故障的时候再次创建一个
在新版本的Kubernetes中建议使用ReplicaSet来取代ReplicationCtronller。ReplicaSet跟ReplicationCtronller没有本质的不同,只是名字不一样,并且ReplicaSet支持集合式的selector。
Deployment为Pod和ReplicaSet提供了一个声明式定义(declarative)方法,用来替代以前的ReplicationController来方便的管理应用。典型的应用场景包括:
一个service定义了访问pod的方式,就像单个固定的IP地址和与其相对应的DNS名之间的关系
一个volume是一个目录,可能会被容器作为未见系统的一部分来访问。Kubernetes volume 构建在Docker Volumes之上,并且支持添加和配置volume目录或者其他存储设备
Secret存储了敏感数据,例如能允许容器接收请求的权限令牌
用户为Kubernetes中资源定义的名字
Namespace 好比一个资源名字的前缀。它帮助不同的项目、团队或是客户可以共享cluster,例如防止相互独立的团队间出现命名冲突
相对于label来说可以容纳更大的键值对,它对我们来说可能是不可读的数据,只是为了存储不可识别的辅助数据,尤其是一些被工具或系统扩展用来操作的数据
kubectl是Kubernetes里的命令行接口,用它来控制Kubernetes集群。
Kubectl的子命令主要分为8个类别:
熟悉这些命令有助于大家来操作和管理kubernetes集群。
4.源码
1.https://www.bookstack.cn/read/Kubernetes-zh/66.md
2.https://cheatsheet.dennyzhang.com/cheatsheet-kubernetes-a4
3.https://kubernetes.io/docs/reference/kubectl/kubectl/
4.https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#get
5.https://feisky.gitbooks.io/kubernetes/components/kubectl.html?h=kubectl
1.《Kubernetes权威指南 从Docker到Kubernetes实践全接触》
2.《Kubernetes in Action中文版》
3.《kubernetes-chinese-docs》
4.《Kubernetes进阶实战》
5.《kubernetes手册2017最新版》
6.《基于Kubernetes的容器云平台实战》
7.《Docker 容器与容器云(第2版)》
8.《Kubernetes指南》
下载链接:https://pan.baidu.com/s/1YsA2-X1h0mFQ3rX6tb8WOg
提取码:b7f1