设为首页 收藏本站
查看: 1205|回复: 0

[经验分享] Kubernetes简要介绍

[复制链接]

尚未签到

发表于 2018-9-15 13:37:57 | 显示全部楼层 |阅读模式
  一、Kubernetes体系架构
  Kubernetes是Google开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能如下:
  1) 使用Docker对应用程序包装(package)、实例化(instantiate)、运行(run)。
  2) 以集群的方式运行、管理跨机器的容器。
  3) 解决Docker跨机器容器之间的通讯问题。
  4) Kubernetes的自我修复机制使得容器集群总是运行在用户期望的状态。
DSC0000.jpg

  Kubernetes Master节点的组成
  1、etcd
  所有的持久性状态都保存在etcd中。Etcd同时支持watch,这样组件很容易得到系统状态的变化,从而快速响应和协调工作。
  2、Kubernetes API Server
  这个组件提供对API的支持,响应REST操作,验证API模型和更新etcd中的相应对象。
  3、Scheduler
  通过访问Kubernetes中/binding API, Scheduler负责Pods在各个节点上的分配。Scheduler是插件式的,Kubernetes将来可以支持用户自定义的scheduler。
  4、Kubernetes Controller Manager Server
  Controller Manager Server负责所有其它的功能,比如endpoints控制器负责Endpoints对象的创建,更新。node控制器负责节点的发现,管理和监控。将来可能会把这些控制器拆分并且提供插件式的实现。
  Kubernetes  slave节点的组成
  1、Kubelet
  Kubelet组件管理Pods和它们的容器,镜像和卷等信息。
  2、Kube-Proxy
  Kube-proxy是一个简单的网络代理和负载均衡器。它具体实现Service模型,每个Service都会在所有的Kube-proxy节点上体现。根据Service的selector所覆盖的Pods, Kube-proxy会对这些Pods做负载均衡来服务于Service的访问者。
DSC0001.jpg

  二、Kubernetes组件
  Kubernetes以RESTFul形式开放接口,用户可操作的REST对象有三个:
  1、pod:是Kubernetes最基本的部署调度单元,可以包含container,逻辑上表示某种应用的一个实例。比如一个web站点应用由前端、后端及数据库构建而成,这三个组件将运行在各自的容器中,那么我们可以创建包含三个container的pod。
  2、service:是pod的路由代理抽象,用于解决pod之间的服务发现问题。因为pod的运行状态可动态变化(比如切换机器了、缩容过程中被终止了等),所以访问端不能以写死IP的方式去访问该pod提供的服务。service的引入旨在保证pod的动态变化对访问端透明,访问端只需要知道service的地址,由service来提供代理。
  3、replicationController:是pod的复制抽象,用于解决pod的扩容缩容问题。通常,分布式应用为了性能或高可用性的考虑,需要复制多份资源,并且根据负载情况动态伸缩。通过replicationController,我们可以指定一个应用需要几份复制,Kubernetes将为每份复制创建一个pod,并且保证实际运行pod数量总是与该复制数量相等(例如,当前某个pod宕机时,自动创建新的pod来替换)。
  可以看到,service和replicationController只是建立在pod之上的抽象,最终是要作用于pod的,那么它们如何跟pod联系起来呢?这就要引入label的概念:label其实很好理解,就是为pod加上可用于搜索或关联的一组key/value标签,而service和replicationController正是通过label来与pod关联的。如下图所示,有三个pod都有label为"app=backend",创建service和replicationController时可以指定同样的label:"app=backend",再通过label selector机制,就将它们与这三个pod关联起来了。例如,当有其他frontend pod访问该service时,自动会转发到其中的一个backend pod。
  三、软件包安装
  centos7系统通过yum方式安装即可。当前kubernetes的最新版本为1.9,目前尚不建议在生产环境使用1.9版本,官网推荐使用kubeadm部署,为了更简单也更系统的学习kubernetes集群的组件,本系列文章采用rpm方式安装kubernetes 1.5.2 版本,后续会介绍如何本地离线安装1.9版本。
  # yum -y install etcd kubernetes
DSC0002.jpg

  1、通用配置文件
  /etc/kubernetes/config
  2、Apiserver服务配置文件
  /etc/kubernetes/apiserver
  启动脚本:/lib/systemd/system/kube-apiserver.service
  3、kube-controller-manager 服务配置文件
  /etc/kubernetes/controller-manager
  启动脚本:/lib/systemd/system/kube-controller-manager.service
  4、kube-scheduler服务配置文件
  /etc/kubernetes/scheduler
  启动脚本: /lib/systemd/system/kube-scheduler.service
  5、kubernet服务配置文件
  /etc/kubernetes/kubelet
  启动脚本:/lib/systemd/system/kubelet.service
  6、Kube-proxy服务
  /etc/kubernetes/proxy
  启动脚本:/lib/systemd/system/kube-proxy.service
  五、服务启动
  1、master节点
  

# systemctl start etcd  
# systemctl start kube-apiserver*
  
# systemctl start kube-controller-manager*
  
# systemctl start kube-scheduler*
  

  2、slave节点
  

# systemctl start docker*  
# systemctl start kubelet*
  
# systemctl start kube-proxy*
  

  六、注意事项
  在kubernetes系统中,对容器的要求是,需要一直在前台执行。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-583608-1-1.html 上篇帖子: 十分钟带你理解Kubernetes核心概念 下篇帖子: kubernetes集群环境准备工作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表