以下为《Kubernetes简介》的无排版文字预览,完整内容请下载
1、为什么是Kubernetes
首先,为什么要用Kubernetes? Kubernetes的目标用一张被很多人引用过的图来说明最好:
/
2、什么是Kubernetes
Kubernetes是Google开源的容器集群管理系统,实现基于Docker构建容器,利用Kubernetes能很方便管理多台Docker主机中的容器。主要包含以下功能:
1)将多台Docker主机抽象为一个资源,以集群方式管理容器,包括任务调度、资源管理、弹性伸缩、滚动升级等功能。
2)使用编排系统(YAML File)快速构建容器集群,提供负载均衡,解决容器直接关联及通信问题
3)自动管理和修复容器,简单说,比如创建一个集群,里面有十个容器,如果某个容器异常关闭,那么,会尝试重启或重新分配容器,始终保证会有十个容器在运行,反而杀死多余的。
3、主要组件及资源对象
/
3.1、Master三个组件
kube-apiserver 提供和外部交互的接口,提供资源配额控制的入口,提供安全机制。
kube-scheduler 调度器,将待调度的Pod(API新建的Pod,Controller Manager为补充副本而创建的Pod等)按照待定的调度算法和策略绑定到集群中某个合适的Node上,并将绑定信息写入etcd。Node节点上的kubelet通过APIServer监听到的kubernetes Scheduler产生的Pod绑定事件,然后获取对应的pod清单,下载Image镜像,并启动容器。
kube-controller-manager 承担了master的主要功能,管理包括:node,pod副本,replication,service,namespace等资源。例如:当某个Node意外宕机时,Controller Manager会及时发现故障并执行转移资源到其它Node节点。
3.2、Node两个组件
kubelet 主要包含容器管理,镜像管理,Volume管理等。同时kubelet也是一个rest服务,和pod相关的命令操作都是通过调用接口实现的。kubelet不直接和etcd交互,而是通过apiserver提供的watch机制,应该是出于安全的考虑。kubelet提供插件机制,用于支持Volume和Network的扩展。
kube-proxy 主要用于实现Kubernetes的service机制,负责为pod提供代理。它会定期从etcd获取所有的service,并根据service信息创建代理。当某个客户pod要访问其他pod时,访问请求会经过本机proxy做转发。
3.3、资源对象
pod:是Kubernetes最基本的部署调度单元,可以包含container,逻辑上表示某种应用的一个实例。
service:是pod的路由代理抽象,用于解决pod之间的服务发现问题。因为pod的运行状态可动态变化(比如切换机器了、缩容过程中被终止了等),所以访问端不能以写死IP的方式去访问该pod提供的服务。service的引入旨在保证pod的动态变化对访问端透明,访问端只需要知道service的地址,由service来提供代理。
replicationController:是pod的复制抽象,用于解决pod的扩容缩容问题。通常,分布式应用为了性能或高可用性的考虑,需要复制多份资源,并且根据负载情况动态伸缩。通过replicationController,我们可以指定一个应用需要几份复制,Kubernetes将为每份复制创建一个pod,并且保证实际运行pod数量总是与该复制数量相等 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 delete -f pod.yaml
kubectl delete pods,services -l name=
kubectl delete pods --all
5、执行容器命令
kubectl exec -c date
kubectl exec -it -c /bin/bash
6、查看容器日志
kubectl logs -f
kubectl logs -f -c -f
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。
以上为《Kubernetes简介》的无排版文字预览,完整内容请下载
Kubernetes简介由用户“liminchenyanlin”分享发布,转载请注明出处