博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kubernetes及其Master/Node节点
阅读量:4179 次
发布时间:2019-05-26

本文共 1649 字,大约阅读时间需要 5 分钟。

Kubernetes是CNCF旗下的一个开源软件系统,用以在集群(跨多主机)中管理容器化的应用,提供应用的部署、维护和伸缩等。应用打包为与运行环境无关的容器镜像(Kubernetes中称为Deployment),然后Kubernetes将其部署到集群中运行的主机上(通常是虚拟机),并以容器实例的形式运行,成为供用户访问的应用。

Kubernetes集群中的主机(也被称为资源,通常是虚拟机)可以分为两类,Master和Nodes。每类主机上都安装有一系列软件组件。

1.Master

一个专用的机器(虚拟机),是Kubernetes集群的control plane,用以协调调度集群中的各个Nodes的主机。通常,安装的组件如下:

1) kube-apiserver,暴露Kubernetes API供调用

对集群外部暴露Kubernetes API供调用。如响应kubectl的请求,接收Deployment配置文件,并将其中定义的对象存储在etcd中。

对集群内部,与Nodes主机上的Kubelet进程通信,调度Pods,获取Pods日志等。

2) etcd,key/value数据库

3) kube-scheduler,将新创建的pods交给选定的一个Node并启动

4) kube-controller-manager (KCM),负责管理运行各种与应用、服务等相关的Controllers

  • Node Controller
  • Replication Controller
  • Endpoints Controller
  • Service Account & Token Controllers

5) cloud-controller-manager (CCM),负责管理运行各种与底层Cloud Provider相关的Controllers

由Cloud Provider实现,独立于Kubernetes,但以扩展插件的形式集成到Kubernetes。Cloud Provider通过实现CCM,能够方便地将自己的Cloud集成到Kubernetes集群。

如果Cloud不提供自己的CCM,Kubernetes集群中的kube-apiserver,KCM和Kubelet都需要与Cloud交互。而通过CCM,就可以隔离Kubernetes与Cloud的直接交互,从而摆脱与Cloud的锁定。事实上,CCM通过各种Controllers将kube-apiserver,KCM和Kubelet与Cloud相关的操作整合为一个集成点,从而使得Kubernetes与Cloud无关。

  • Node Controller
  • Route Controller
  • Service Controller
  • Volume Controller

一个Controller就是一个进程。但是为了方便管理,将所有的Controllers打包作为一个进程运行。

目前提供CCM的Cloud提供商:

  • Digital Ocean
  • Oracle
  • Azure
  • GCE
  • AWS

2.Nodes

若干个机器(虚拟机),实际运行业务应用的负载主机。通常,安装的组件如下:

1) Kubelet

一个代理组件,与Master的kube-apiserver通信,作为Master管理Node的代理,确保运行在该Node上的Pod能够被纳入的Kubernetes集群。

2) kube-proxy

屏蔽Node底层网络环境的差异,为Kubernetes的服务提供统一的虚拟IP抽象层。

3) 容器运行时环境,如Docker, rkt, runc等

说明:Kubernetes集群中不存在创建Node的问题,因为作为Node的物理机或VM,是由云提供的。但是,这些外部云提供者提供的Node,需要在Kubernetes集群中声明,并通过Master上的Node Controller进行管理控制。

 

参考链接:

https://kubernetes.io

转载地址:http://vqlai.baihongyu.com/

你可能感兴趣的文章
就在昨天,全球 42 亿 IPv4 地址宣告耗尽!
查看>>
Jackson Tree Model Example
查看>>
常用js收集
查看>>
如何防止sql注入
查看>>
springmvc传值
查看>>
在Eclipse中查看Android源码
查看>>
[转]C语言printf
查看>>
对话周鸿袆:从程序员创业谈起
查看>>
Mysql中下划线问题
查看>>
Xcode 11 报错,提示libstdc++.6 缺失,解决方案
查看>>
vue项目打包后无法运行报错空白页面
查看>>
1136 . 欧拉函数
查看>>
面试题:强制类型转换
查看>>
Decorator模式
查看>>
Template模式
查看>>
Observer模式
查看>>
高性能服务器设计
查看>>
图文介绍openLDAP在windows上的安装配置
查看>>
Pentaho BI开源报表系统
查看>>
Pentaho 开发: 在eclipse中构建Pentaho BI Server工程
查看>>