Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一) …

释放双眼,带上耳机,听听看~!

0、前言

整体架构目录:ASP.NET Core分布式项目实战-目录

k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录

一、环境规划

 


 

软件 版本
Linux CentOS7 18.04
Kubernetes 1.9(也适用1.10)
Docker 18.06-ce
etcd 3.0

1
1

 

服务 IP 组件
master01 192.168.161.151 kube-apiserver kube-controller-manager kube-scheduler etcd (主master)
master02 192.168.161.150 kube-apiserver kube-controller-manager kube-scheduler (后期主要为扩展为master高可用说明)
node01 192.168.161.152 kubelet kube-proxy docker flannel etcd
node02 192.168.161.153 kubelet kube-proxy docker flannel etcd

1
1

 

二、Kubernetes(k8s)介绍、系统架构及组件功能


 

1、k8s介绍

具体介绍可自行去官网查看:www.kubernetes.io ,这边主要说明k8s是用来干什么的,k8s主要用来自动化部署、扩展和管理容器应用,提供了资源调度、部署管理、服务发现、扩容缩容、监控等一整套功能,目标是让部署容器化应用简单高效

2、基本对象概念

**Pod:**Pod是最小部署单元,一个Pod有一个或多个容器组成,Pod中容器共享存储和网络,在同一台Docker主机上运行。 

Service:

Service一个应用服务抽象,定义了Pod逻辑集合和访问这个Pod集合的策略。
Service代理Pod集合对外表现是为一个访问入口,分配一个集群IP地址,来自这个IP的请求将负载均衡转发后端Pod中的容器。
Service通过Lable Selector选择一组Pod提供服务

**Volume: **数据卷,共享Pod中容器使用的数据

Namespace:

命名空间将对象逻辑上分配到不同Namespace,可以是不同的项目、用户等区分管理,并设定控制策略,从而实现多租户。
命名空间也称为虚拟集群。

**Lable: **标签用于区分对象(比如Pod、Service),键/值对存在;每个对象可以有多个标签,通过标签关联对象

 

ReplicaSet:

下一代Replication Controller。确保任何给定时间指定的Pod副本数量,并提供声明式更新等功能。
RC与RS唯一区别就是lable selector支持不同,RS支持新的基于集合的标签,RC仅支持基于等式的标签

 

Deployment:
Deployment是一个更高层次的API对象,它管理ReplicaSets和Pod,并提供声明式更新等功能。
官方建议使用Deployment管理ReplicaSets,而不是直接使用ReplicaSets,这就意味着可能永远不需要直接操作ReplicaSet对象。

StatefulSet:
StatefulSet适合持久性的应用程序,有唯一的网络标识符(IP),持久存储,有序的部署、扩展、删除和滚动更新。

DaemonSet:
DaemonSet确保所有(或一些)节点运行同一个Pod。当节点加入Kubernetes集群中,Pod会被调度到该节点上运行,当节点从集群中
移除时,DaemonSet的Pod会被删除。删除DaemonSet会清理它所有创建的Pod。

Job:
一次性任务,运行完成后Pod销毁,不再重新启动新容器。还可以任务定时运行

 

3、系统架构及组件

Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一) ...

 

 

**Master组件: **

kube-apiserver:
Kubernetes API,集群的统一入口,各组件协调者,以HTTP API提供接口服务,所有对象资源的增删改查和监听操作都交给APIServer处理后再提交给Etcd存储。

kube-controller-manager:
处理集群中常规后台任务,一个资源对应一个控制器,而ControllerManager就是负责管理这些控制器的。

kube-scheduler:
根据调度算法为新创建的Pod选择一个Node节点。

**Node组件: **

kubelet:
kubelet是Master在Node节点上的Agent,管理本机运行容器的生命周期,比如创建容器、Pod挂载数据卷、
下载secret、获取容器和节点状态等工作。kubelet将每个Pod转换成一组容器。 

kube-proxy:
在Node节点上实现Pod网络代理,维护网络规则和四层负载均衡工作。 

**docker:**运行容器。

**第三方服务: **

etcd
分布式键值存储系统。用于保持集群状态,比如Pod、Service等对象信息。

 

4、下一篇就是开始集群部署啦

主要讲解第一部分的:自签TLS证书和部署Etcd集群

给TA打赏
共{{data.count}}人
人已打赏
安全运维

故障复盘的简洁框架-黄金三问

2021-9-30 19:18:23

安全运维

OpenSSH-8.7p1离线升级修复安全漏洞

2021-10-23 10:13:25

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索