五十三、Kubernetes 概念介绍与部署

1、OpenStack 介绍

OpenStack是一个由美国国家航空航天局(National Aeronautics and Space Administration,NASA)和Rackspace合作研究并发起的,以Apache许可证授权的自由软件和开放源代码项目,OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(Infrastructure as a Service,IaaS)的解决方案,每个服务提供API以进行集成,当然除了Iaas解决方案,还有主流的平台即服务(Platform-as-a-Service,PaaS)和软件即服务(Software-as-a-Service,SaaS),三者区别如图所示:
在这里插入图片描述
在这里插入图片描述

2、Kubernetes 介绍

2.1 概念

Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展。可以将Docker看成Kubernetes内部使用的低级别组件。Kubernetes不仅支持Docker,还支持其他的容器技术Rocket、KVM软件服务,使用Kubernetes可以实现如下功能:

自动化容器的部署和复制;
随时扩展或收缩容器规模;
将容器组织成组,并且提供容器间的负载均衡;
很容易地升级应用程序容器的新版本;
提供容器弹性,如果容器失效就替换它等。

2.2 Kubernetes平台组件概念

Kubernetes集群中主要存在两种类型的节点:Master、Minion节点,Master节点主要是用于管理整个集群所有的Minion节点,对整个集群的资源进行调度、控制,提供统一入口API,所有对集群的操作指令均要通过API接口授权方可。Minion节点为运行 Docker容器的节点,负责和节点上运行的 Docker 进行交互,并且提供了代理功能。

Master主控节点服务:

Apiserver:用户和 kubernetes 集群交互的入口,封装了核心对象的增删改查操作,提供了 RESTFul 风格的 API 接口,通过etcd来实现持久化并维护对象的一致性。Apiserver服务非常重要,出现异常,所有的操作均无法执行。
Scheduler:负责集群资源的调度和管理,例如当有 pod 异常退出需要重新分配机器时,scheduler 通过一定的调度算法从而找到最合适的节点,将新的任务分配到其他节点上。
Controller-manager:集群内部的管理控制中心,负责集群内的Node、Pod副本、服务端点(Endpoint)、命名空间(Namespace)、服务账号(ServiceAccount)、资源定额(ResourceQuota)的管理,当某个Node意外宕机时,Controller Manager会及时发现并执行自动化修复流程,确保集群始终处于预期的工作状态。

Minion计算节点服务:

Kubelet:主要是用于和节点上Docker引擎服务做交互、控制,调用Docker引擎服务:创建、删除、部署、更新、启动Docker容器,还可以监控每个容器的资源(CPU、MEM、DISK)使用情况。
Proxy:负责为 pod 提供代理功能,会定期从 etcd 获取 service 信息。对外提供统一的访问入口,并根据 service 信息通过修改 iptables 来实现流量转发(最初的版本是直接通过程序提供转发功能,效率较低。),将流量转发到要访问的 pod 所在的节点上去。

其他服务:
Etcd:etcd 是一个分布式一致性k-v存储系统数据库,可用于服务注册发现与共享配置数据库,用来存储kubernetes的信息(容器的IP、节点IP、分组、业务组、负载均衡配置等)。
Flannel:Flannel是CoreOS 团队针对 Kubernetes 设计的一个覆盖网络(Overlay Network)工具,Flannel 目的就是为集群中的所有节点重新规划 IP 地址的使用规则,从而使得不同节点上的容器能够获得同属一个内网且不重复的 IP 地址,并让属于不同节点上的容器能够直接通过内网 IP 通信,让使用人员无需关注网络,轻松实现云计算平台内部通信。

3、Kubernetes平台工作原理

Kubernetes集群是一组节点,这些节点可以是物理服务器或者虚拟机,在其上安装Kubernetes平台。下图为了强调核心概念有所简化:
在这里插入图片描述
在这里插入图片描述

4、部署

准备三台机器
master 10.0.0.147
etcd 10.0.0.149
minion 10.0.0.150

4.1 Etcd 部署

[root@localhost ~]# yum install -y etcd
[root@localhost ~]# vim /etc/etcd/etcd.conf

# ETCD数据目录
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
# ETCD监听的数据端口2379
ETCD_LISTEN_CLIENT_URLS="http://127.0.0.1:2379,http://10.0.0.149:2379"
# NAME节点名称
ETCD_NAME="default"
# ETCD集群之间数据共享,对外宣告的URL+2379端口
ETCD_ADVERTISE_CLIENT_URLS="http://127.0.0.1:2379,http://10.0.0.14
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值