k8s的组件及其功能概览

举报
hsg1204 发表于 2018/12/31 19:08:46 2018/12/31
【摘要】 # 参考网址:https://kubernetes.io/docs/concepts/overview/components/#node-components<br>http://docs.kubernetes.org.cn/230.html#Master<br>https://zhibo.huaweicloud.com/watch/2174406# k8s概览# What Kubernet...

# 参考网址:https://kubernetes.io/docs/concepts/overview/components/#node-components<br>http://docs.kubernetes.org.cn/230.html#Master<br>https://zhibo.huaweicloud.com/watch/2174406

# k8s概览




What Kubernetes offers

         您的团队正在部署普通的Rails应用程序。您已经运行了一些计算,并确定您需要在任何给定时间运行五个应用实例,以便处理外部流量,如果不用kubernetes或者类似的自动系统,可能会遇到下列熟悉的情况:

  • 您的应用程序的一个实例(一个完整的机器实例或只是一个容器)会关闭。       

  • 由于您的团队具有监控设置,因此可能需要找运维人员。

  • 运维人员必须进入,调查并手动启动新实例。

  • 根据您的团队处理DNS /网络的方式,运维人员可能还需要更新服务发现机制以指向新Rails实例的IP而不是旧的。

    这种方式很不方便。

     要使Kubernetes有用,它需要知道您希望它维护什么类型的集群状态。您的YAML或JSON配置文件根据一个或多个API对象(例如“部署”)声明了所需的状态。要更新群集的状态,请将这些文件提交到Kubernetes API服务器(kube-apiserver)

    请注意,API服务器只是网关,该对象数据实际存储在名为etcd的高可用性数据存储中。但是,对于大多数意图和目的,您可以专注于API服务器。对群集状态的大多数读取和写入都是作为API请求进行的。

    一旦通过API声明你想要的集群状态控制器将工作使集群达到所需状态。标准控制器有Kkube-controller-manager和cloud-controller-manager,也可以自己编写自己的控制器。

# kubernetes组件

## master组件

        Master组件提供集群的管理控制中心。

        Master组件可以在集群中任何节点上运行。但是为了简单起见,通常在一台VM/机器上启动所有Master组件,并且不会在此VM/机器上运行用户容器。

        ### kube-apiserver

                用于暴露Kubernetes API,任何资源请求和调用操作都是通过kube-apiserver提供的接口进行。

        ### ETCD

                是Kubernetes提供的默认存储系统,保存所有集群的数据,使用时需要为etcd数据备份计划。

        ### kube-controller-manager:

                运行管理控制器,他们是集群中处理常规任务的后台线程,逻辑上每隔控制器都是单独的进程,为了降低复                    杂性,他们都被变异成二进制文件,并在单个进程中运行。这些控制器包括:

  • 节点控制器(Node)

  • 副本控制器(Replication):维护系统中的每隔副本中的pod

  • 端点控制器(Endpoints):填充Endpoints对象(即连接services&pods)

  • Service Account 和Token控制器:为新的Namespace创建默认账户访问API Token。


        ### cloud-controller-manager

                云控制器管理负责底层提供商的平台交互。云控制器仅运行云提供商特定的(controller loops)控制器循            环。可以通过将--cloud-provider flag设置为external启动kube-controller-manager来禁用控制器循环。

        ### cloud-controller-manager具体功能:节点控制器(Node)、路由控制器(Route)、Service控制器、卷(Volume)控制器

        ### kube-scheduler

                监视新创建没有分配到Node的Pod,为Pod选择一个Node。

## 插件addons

        是实现集群pod和service功能的。Pod由Deployments,ReplicationController等进行管理。Namespace插件对象是kube-system Namespace中创建。

        ### DNS:虽然不严格要求使用插件,但Kubernetes集群都应该具有集群DNS,集群DNS是一个DNS服务器,能够Kubernetes service提供DNS记录,由Kubernetes启动的容器自动将这个DNS服务器包含在他们的DNSserches中。

        ### Web UI(Dashboard) 是Kubernetes集群的基于Web的通用UI。它允许用户管理和解决群集中运行的应用程序以及群集本身。 集装箱资源监测。

        ### 容器资源监测: 容器资源监视记录有关中央数据库中容器的通用时间序列度量,并提供用于浏览该数据的UI

        ### Cluster-level Logging,负责保存容器日志,搜索/查看日志。

## 节点组件(Node)

        节点组件运行在Node,提供Kubernetes运行时环境,以及维护Pod

        ### kubelet

                kunelet是主要的节点代理,他会见识已分配给节点的pod具体功能:

  • 安装pod所需的volume   

  • 下载pod的secrets

  • 控制pod中运行的容器

  • 定期进行容器健康检查

        ### kube-proxy

                        kube-proxy通过在主机上维护网络规则并执行连接转发来实现Kubernetes服务抽象。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。