Kubernetes基础及应用实践_第1页
Kubernetes基础及应用实践_第2页
Kubernetes基础及应用实践_第3页
Kubernetes基础及应用实践_第4页
Kubernetes基础及应用实践_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Kubernetes根底及应用实践

前言前言前言前言Kuberentes的开展Kuberentes是基于容器的集群管理平台,它的简称,是K8S。K8S这个单词来自于希腊语,含义是舵手或领航员。K8S的创造者,是众人皆知的行业巨头——Google。然而,K8S并不是一件全新的创造。它的前身,是Google自己捣鼓了十多年的Borg系统。2014年6月:K8S由Google公司正式公布出来并宣布开源的。同年7月,微软、RedHat、IBM、Docker、CoreOS、Mesosphere和Saltstack等公司,相继参加K8S。2015年7月,Google正式参加OpenStack基金会。与此同时,Kuberentesv1.0正式发布。2016:K8S在这一年成为主流2017:被越来越多的企业采用.目录11K8S概述及安装2K8S根本概念和术语3K8S常用命令4K8S应用实践目录11K8S概述及安装K8S概述K8S是一个全新的基于容器技术的分布式架构领先方案。K8S是一个开放的开发平台。K8S是一个完备的分布式系统支撑平台。K8S优点开发人员各司其职,轻装上阵全面拥抱微效劳框架使用K8S我们系统可以随时的整体迁移K8S系统具备了超强的横向扩容能力K8S框架K8S框架

当使用kubectl或直接调用apiserver提供的api请求创立pod和service时工作流程:apiserver把相关的pod和service配置存储到etcd中scheduler从apiserver获取到相关pod的配置,根据集群中的资源和条件限制把pod调度到相应的node节点上controller-manager从apiserver获取到相关pod和service的配置,定期检查pod的状态,保证有用户配置的足够数量的pod副本在运行,生成service到pod的规则关系。kubelet从apiserver获取分配到本节点的相关pod配置,在本地启动容器并定期检查返回容器状态kube-proxy从apiserver获取service到pod的规则,在本节点维护iptable或者ipvs相关路由规则K8S框架〔master-apiserver〕提供集群管理的API接口;集群内各个功能模块之间数据交互和通信的中心枢纽;

K8S框架〔master-controllermanager〕ControllerManager负责管理集群各种资源,保证资源处于预期的状态。ReplicationController〔副本控制器〕:确保在任何时候集群中都保持一定数量的pod副本处于正常运行状态。NodeController:资源配额管理确保制定对象在任何时候都不会超量占用系统资源。EndpointController:定期关联service和pod(关联信息由endpoint对象维护),保证service到pod的映射是最新的。ServicesController:监听Service的变化。

K8S框架〔master-scheduler〕负责Pod调度。通过调度算法为待调度Pod列表的每个Pod选择一个最适宜的Node。

K8S框架〔master-etcd〕负责保存k8s集群的配置信息和各种资源的状态信息,当数据发生变化时,etcd会快速地通知k8s相关组件。etcd提供了监听〔watch〕机制,用于监听和推送变更。

K8S框架〔node〕Node主要负责提供容器的各种依赖环境,并接受Master管理。每个Node有以下几个组件构成。Kubelet当Scheduler确定在某个Node上运行Pod后,会将Pod的具体配置信息〔image、volume等〕发送给该节点的kubelet,kubelet会根据这些信息创立和运行容器,并向master报告运行状态。ContainerRuntime每个Node都需要提供一个容器运行时〔ContainerRuntime〕环境,它负责下载镜像并运行容器Kube-proxyservice在逻辑上代表了后端的多个Pod,外部通过service访问Pod。service接收到请求就需要kube-proxy完成转发到Pod的。K8S部署二进制包安装kubeadm工具快速部署目录12K8S根本概念和术语K8S根本概念和术语Pod是K8S的最小工作单元。每个Pod包含一个或多个容器。Pod中的容器会作为一个整体被Master调度到一个Node上运行。可管理性

通信和资源共享

K8S根本概念和术语K8S根本概念和术语K8S根本概念和术语挂起〔Pending〕:APIServer创立了Pod资源对象并已经存入了etcd中,但是它并未被调度完成,或者仍然处于从仓库下载镜像的过程中。运行中〔Running〕:Pod已经被调度到某节点之上,并且所有容器都已经被kubelet创立完成。成功〔Succeeded〕:Pod中的所有容器都被成功终止,并且不会再重启。失败〔Failed〕:Pod中的所有容器都已终止了,并且至少有一个容器是因为失败终止。也就是说,容器以非0状态退出或者被系统终止。未知〔Unknown〕:因为某些原因无法取得Pod的状态,通常是因为与Pod所在主机通信失败。K8S根本概念和术语创立podkubectlcreate–fmypod.yaml查看pod信息kubectldescribepodmypod删除podkubectldelete–fmypod.yaml查看所有podkubectlgetpods

K8S根本概念和术语K8S根本概念和术语ReplicationController(副本控制器):

创立指定数量的pod副本数量,确保pod副本数量符合预期状态,并且支持滚动式自动扩容和缩容功能。

ReplicationController包含几个局部:用户期望的pod副本数量标签选择器,判断哪个pod归自己管理当现存的pod数量缺乏,会根据pod资源模板进行新建

K8S根本概念和术语

RelicaSet(副本集)下一代的ReplicationController,支持label标签为集合其余同ReplicationController一样

K8S根本概念和术语

Deployment:目前来说最好的控制器。支持滚动更新和回滚功能,还提供声明式配置。定义Deployment来创立Pod和ReplicaSet滚动升级和回滚应用kubectlroll-updatenginx-deployment–fnginx-deployment–v2.yamlkubectlrolloutundodeployment/nginx-deployment扩容和缩容kubectlscaledeploymentnginx-deployment–replicas=5kubectlscaledeploymentnginx-deployment–replicas=1暂停和继续Deploymentkubectlrolloutpausedeploymentnginx-deploymentkubectlrolloutresumedeploymentnginx-deploymentK8S根本概念和术语K8S根本概念和术语用户通过kubectl创立DeploymentDeployment创立ReplicaSetReplicaSet创立Podlabel以key/value键值对的形式附加到任何对象上,如Pod,Service,Node,RC/RS等,label对象创立好之后,通过LabelSelector来引用这些对象。K8S目前支持两种类型的LabelSelector:基于等式的Selector〔Equality-based〕

基于集合的Selector〔Set-based〕K8S根本概念和术语namespace用于实现多租户的资源隔离,可以将集群内部的资源对象分配到不同的namespace中,形成逻辑上分组的不同工程、小组,便于不同的分组在共享使用整个集群的资源的同时还能被分别管理。创立命名空间kubectlcreatenamespacetestkubectlcreate–fnamespaceyaml查看kubectlgetnsK8S根本概念和术语volume是能够被pod中多个容器访问的共享目录emptyDirhostPathnfsconfigmapK8S根本概念和术语ConfigMap用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件。必须在pod之前创立必须在同一命名空间下创立cofigmapkubectlcreateconfigmapmy-config--from-file=path/to/barkubectlcreate–fbar.yamlK8S根本概念和术语K8S根本概念和术语Service是Kubernetes的核心资源类型之一,Service资源基于标签选择器将一组Pod定义成一个逻辑组合,并通过自己的IP地址和端口调度代理请求到组内的Pod对象K8S根本概念和术语K8S根本概念和术语创立servicekubectlcreate–fmyservice.yaml查看资源对象kubectlgetservicemyservice描述资源对象kubectldescribeservicemyservice删除资源对象kubectldelete–fmyservice.yaml目录13K8S常用命令K8S常用命令创立资源对象kubectlcreate–fmypod.yamlK8S常用命令查看资源对象kubectlgetpods/service/rc/deployment/rsK8S常用命令描述资源对象kubectldescribepod/service/rc/deployment/rs/configmapK8

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论