Kubernetes

介绍

Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。

Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。

架构

 

Kubernetes集群包含有节点代理kubeletMaster组件(APIs, scheduler, etc),一切都基于分布式的存储系统。

 

 

Kubernetes部署架构图

 

 

Kubernetes主要由以下几个核心组件组成:

etcd保存了整个集群的状态(相当于mysqletcd支持watch

apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制

controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等

scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上

kubelet负责维护容器的生命周期,同时也负责VolumeCVI)和网络(CNI)的管理

Container runtime(上下文)负责镜像管理以及Pod和容器的真正运行(CRI

kube-proxy负责为Service提供cluster内部的服务发现和负载均衡;

 

除了核心组件,还有一些推荐的Add-ons

kube-dns负责为整个集群提供DNS服务

Ingress Controller为服务提供外网入口

Heapster提供资源监控

Dashboard提供Web UI

Federation提供跨可用区的集群

Fluentd-elasticsearch提供集群日志采集、存储与查询

创建Kubernetes集群

第一种方式:组件式安装

针对于master节点,将API Serveretcdcontroller-managerscheduler各组件进行yum install、编译安装或者展开安装的方式手动直接安装在master节点主机上,作为系统级守护进程运行。

 

第二种方式:采用kubeadm安装工具安装

每一个节点主机上包括master节点都要手动安装并运行docker,同时也都要手动安装并运行kubelet。如果将第一个节点初始化为master节点,在执行初始化这个步骤,其实就是通过kubeadm工具将API Serveretcdcontroller-managerscheduler各组件运行为Pod,也就是跑在docker上。而其他node节点,因已经运行了kubeletdocker组件,剩下的kube-proxy组件也是要运行在Pod上。

 

posted on 2019-12-26 21:46  啥是py  阅读(110)  评论(0编辑  收藏  举报

导航