Docker 公司的容器编排系统,使用的是标准的Docker APIDocker Swarm代理,一个主机运行一个Docker Swarm管理者Dokcer接口API和命令行窗口CLI进行容器编排Docker的其他容器,比如:rktAPI,命令系统是另一套系统
Mesos上运行,包含Hadoop、Kafka、Spark等
Kubernetes是Google开源的一个容器集群管理系统,用于管理云平台中多个主机上的容器化的应用。Kubernetes的目标是让部署容器化的应用简单并且高效(powerful,Kubernetes提供了应用部署,规划,更新,维护的一种机制。

Kubernetes是为生产环境而设计的容器调度管理系统Kubernetes集群的组成部分 etcd:保存集群的状态Minion,etcd现在称为Node:运行应用容器的主机节点,在每个Minion节点上都会运行一个Kubelet代理,控制该节点上的容器、镜像和存储卷等。Master:运行节点的管理控制模块Cluster : 集群是指由k8s使用一系列的物理机、虚拟机和其他基础资源来运行用户的应用程序。
Node: 一个node就是一个运行着k8s的物理机或虚拟机,并且pod可以在其上面被调度。
pod对应一个由相关容器和卷组成的容器组。
Label : 一个label是一个被附加到资源上的键/值对,譬如附加到一个Pod上,为它传递一个用户自定的并且可识别的属性。Label还可以被应用来组织和选择子网中的资源。
selector:是一个通过匹配labels来定义资源之间的关系表达式,例如为一个负载均衡的service指定所目标Pod。
Replication Controller : replication controller 是为了保证一定数量被指定的Pod的复制品在任何时间都能正常工作,相当于是应用控制管理器。它不仅允许复制的系统易于扩展,还会处理当pod在机器在重启或发生故障的时候再次创建一个
Service : 一个service定义了访问pod的方式,就像单个固定的IP地址和与其相对应的DNS名之间的关系。
Volume: 一个volume是一个目录,可能会被容器作为未见系统的一部分来访问。Kubernetes volume 构建在Docker Volumes之上,并且支持添加和配置volume目录或者其他存储设备。
Secret : Secret 存储了敏感数据,例如能允许容器接收请求的权限令牌。
Name : 用户为Kubernetes中资源定义的名字,即资源的名字。
Namespace : Namespace 好比一个资源名字的前缀。它帮助不同的项目、团队或是客户可以共享cluster,例如防止相互独立的团队间出现命名冲突。
Annotation : 相对于label来说可以容纳更大的键值对,为了存储不可识别的辅助数据,尤其是一些被工具或系统扩展用来操作的数据。
个人用户安装Docker,参考Docker官网,选择安装社区版CE。
//第一次在服务器上使用安装Docker,需要先安装仓库
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"test # test和nightly至少要填写一个在stable后面
// 安装Docker-CE版本
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.ioMiniKube 是使用Go语言开发的,两种方式安装:
# 下载v0.24.1版本
> curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.24.1/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
# 下载最新版
> curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
> minikube -hKubectl
k8s通过kube-apiserver作为整个集群管理的入口。用户可以通过kubectl以命令行的方式同集群进行交互,它是K8s中非常常用的工具。
Kubernetes之kubectl命令行工具简介、安装配置及常用命令
Apiserver是整个集群的主管理节点,用户通过Apiserver配置和组织集群,etcd存储的交互也是通过Apiserver进行交互。Apiserver实现了一套RESTfull的接口,用户可以直接使用API同Apiserver交互。kubectl随工具集打包,用于可直接通过kubectl以命令行的方式同集群交互。curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/1.显示所有pod
kubectl get po # 获取当前运行的所有pods的信息
kubectl get po -o wide # 获取pod运行在哪个节点上的信息
2.显示所有rc
kubectl get rc
3.显示所有service
kubectl get service
4.删除rc
kubectl delete rc rcname
5.删除service
kubectl delete service servicename
6.删除pod
kubectl delete pod podname
7.查看pod描述
kubectl describe pod podname # 可以查看错误
8.删除所有
kubectl delete pod –all
9.获取所有的namespace\svc\nodes
kubectl get namespace\svc\nodes # 获取相关信息
kubectl get svc -all –all-namespaces
kubectl delete svc -all –all-namespaces
kubectl get limitrange –all-namespaces
kubectl delete limitrange inf-limit –namespace=inf