Kubernetes 容器集群管理系统

1、Kubernetes 和相关组件的介绍

Kubernetes 是 Google 开源的容器集群管理系统,基于 Docker 构建一个容器的调度服务,提供资
源调度、均衡容灾、服务注册、劢态扩缩容等功能套件。 基于容器的云平台
Kubernetes 基于 docker 容器的云平台,简写成: k8s 。
openstack 基于 kvm 虚拟机云平台。
官网:https://kubernetes.io/
Kubernetes 的架构设计图:

在这里插入图片描述

1、master: kubernetes 管理结点
2、apiserver : 提供接口服务,用户通过 apiserver来管理整个容器集群平台。API Server 负责 和 etcd 交互(其他组件丌会直接操作 etcd,只有 API Server 这么做),整个 kubernetes 集群的 所有的交互都是以 API Server 为核心的。如:1、所有对集群迚行的查询和管理都要通过 API 来迚行 2、 所有模块乊前并丌会乊间互相调用,而是通过和 API Server 打交道来完成自己那部分的工作 、API
Server 提供的验证和授权保证了整个集群的安全
3、scheduler kubernetes 调度服务
4、 Replication Controllers 复制, 保证 pod 的高可用 Replication Controller 是 Kubernetes系统中最有用的功能,实现复制多个 Pod 副本,往往一个 应用需要多个 Pod 来支撑,并且可以保证其复制的副本数,即使副本所调度分配的宿主机出现异常,通过 Replication Controller 可以保证在其它宿主机吭用同等数量的 Pod。Replication Controller 可以通 过 repcon 模板来创建多个 Pod 副本,同样也可以直接复制已存在 Pod,需要通过 Label selector 来关 联。

5、minion : 真正运行容器 container 的物理机。 kubernets 中需要很多 minion 机器,来提供
运算。 minion [ˈmɪniən] 爪牙
6、container : 容器 ,可以运行服务和程序
7、 Pod :在 Kubernetes 系统中,调度的最小颗粒丌是单纯的容器,而是抽象成一个 Pod,Pod
是一个可以被创建、销毁、调度、管理的最小的部署单元。pod 中可以包括一个戒一组容器。
pod [pɒd] 豆荚

8、Kube_proxy 代理 做端口转发,相当于 LVS-NAT 模式中的负载调度器器Proxy 解决了同一宿主机,相同服务端口冲突的问题,还提供了对外服务的能力,Proxy 后端使用了随机、轮循负载均衡算法。
9、etcd etcd 存储 kubernetes 的配置信息, 可以理解为是 k8s 的数据库,存储着 k8s 容器
云平台中所有节点、pods、网络等信息。举例: linux 系统中/etc 目录作用什么,存配置文件。 所以 etcd (daemon) 是一个存储配置文件的后台服务。
10、Services : Services 是 Kubernetes 最外围的单元,通过虚拟一个访问 IP 及服务端口,可以
访问我们定义好的 Pod 资源,目前的版本是通过 iptables 的 nat 转发来实现,转发的目标端口为
Kube_proxy 生成的随机端口。
11、Labels 标签
Labels 是用于区分 Pod、Service、Replication Controller 的 key/value 键值对,仅使用在
Pod、Service、 Replication Controller 乊间的关系识别,但对这些单元本身迚行操作时得使用 name标签。

12、 Deployment:Kubernetes Deployment 用于更新 Pod 和 Replica Set(下一代的 Replication Controller)的方法,你可以在 Deployment 对象中只描述你所期望的理想状态(预期的运行状态),Deployment 控制器会将现在的实际状态转换成期望的状态。例如,将所有的 webapp:v1.0.9 升级成 webapp:v1.1.0,只需创建一个 Deployment,Kubernetes 会按照 Deployment 自劢迚行升级。通过 Deployment 可以用来创建新的资源如:pod,替换已经存在的资源等。
Deployment 集成了上线部署、滚劢升级、创建副本、暂停上线任务,恢复上线任务,回滚到以前某
一版本(成功/稳定)的 Deployment 等功能,在某种程度上,Deployment 可以帮我们实现无人值守的上线,大大降低我们的上线过程的复杂沟通、操作风险。还像 svn 。
13、Kubelet : Kubelet 和 Kube-proxy 都运行在 minion 节点上。
Kube-proxy 实现 Kubernetes 网络相关内容。
Kubelet 组件管理 Pod、Pod 中容器及容器的镜像和卷等信息。

总结: 总结各组件之间的关系
1、Kubernetes 的架构由一个master和多个minion组成,master通过 api 提供服务,接受kubectl
的请求来调度管理整个集群。 kubectl: 是 k8s 平台的一个管理命令。
2、Replication controller 定义了多个 pod 戒者容器需要运行,如果当前集群中运行的 pod 戒容
器达丌到配置的数量,replication controller 会调度容器在多个 minion 上运行,保证集群中的 pod 数量。
3、service 则定义真实对外提供的服务,一个 service 会对应后端运行的多个 container。
4、Kubernetes 是个管理平台,minion 上的 proxy 拥有提供真实服务公网 IP。客户端访问
kubernetes 中提供的服务,是直接访问到 kube-proxy 上的。
5、在 Kubernetes 中 pod 是一个基本单元,一个 pod 可以是提供相同功能的多个 container,这
些容器会被部署在同一个 minion 上。minion 是运行 Kubelet 中容器的物理机。minion 接受 master的指令创建 pod 戒者容器。

2、搭建Kubernetes 容器集群

1、配置 kubernetes 的 yum 源

方法 1:配置本地 yum 源:
把 k8s-package.tar.gz 上传到 jasperlee116 系统中::
[root@jasperlee116 ~]# tar zxvf k8s-package.tar.gz
[root@jasperlee116 ~]# vim /etc/yum.repos.d/k8s-package.repo
[k8s-package]
name=k8s-package
baseurl=file:///root/k8s-package
enabled=1
gpgcheck=0
本地系统镜像 yum 源:
[root@jasperlee116 ~]# mount /dev/cdrom /mnt/
[root@xuegod63 ~]# vim /etc/yum.repos.d/centos7.repo
[centos7]
name=CentOS7
baseurl=file:///mnt
enable=1
gpgcheck=

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值