k8s和Docker
Docker是一个开源的应用容器引擎
k8s是一个开源的容器集群管理系统
这里我尽量用比较浅显的方式来说明k8s系统
一、k8s是如何管理的节点的呢:
1、k8s 分master和node
2、master是整个集群的管理中心,在master上可以执行 kubectl get pod 等命令,来干预node
3、node是具体的pod的承载的机器,我们有时候称为node节点
4、master可以有多个,例如:master1,master2,master3, 在任意的master上都可以执行相关的管理命令来干预node节点的行为
行为包括暂停节点、删除节点、查看节点、调度节点等等。
5、node节点理论上是有无限个,node节点在安装完毕后,通过注册的方式向master进行注册,这样master会自动的感应到node节点的
Master负责集群的管理,协调集群中的所有行为/活动。例如,pod应用的运行、修改、更新等。节点(Node)作为Kubernetes集群中的工作节点,可以是VM虚拟机、物理机。每个Node上都需要安装一个Kubelet,docker,kubelet-proxy等。用于管理Node节点与Kubernetes Master 通信。每个Node节点上至少还要运行container runtime (比如Docker或者rkt)
在Kubernetes(k8s)集群上部署应用程序时,会先通知master启动容器中的应用程序,master 调度容器在集群的Node节点上运行,Node节点使用master公开的Kubernetes API与主节点进行通信。最终用户还可以直接使用Kubernetes API与集群进行交互
我们用一个表格来看下一个master、node的关系
| 角色 | ip | 组件 |
| master1 | 192.168.51.21 |
etcd kube-apiserver kube-controller-manager kube-scheduler |
| master2 | 192.168.51.22 |
etcd kube-apiserver kube-controller-manager kube-scheduler |
| node1 | 192.168.51.11 |
kubelet kube-proxy docker |
| node2 | 192.168.51.22 |
kubelet kube-proxy docker |
K8s集群组件如下:
etcd:一个高可用的K/V键值对存储和服务发现系统,节点的注册信息会存贮到etcd。
flannel:实现跨主机的容器网络的通信,当然我们也可以使用类似calico这样的网络组件代替flannel。
这里说白了,是构建了一个内部的pod网络通讯环境,比如:建立虚拟网卡,网桥等。
kube- apiserver:提供Kubernetes集群内的node节点的与master通讯, 前提需要安装通讯所需的网络插件,api-server很重要是master和node进行通讯的必要组件,例如检测node是否存活,node状态等。
kube- controller-manager:确保集群服务。
kube- scheduler:从集群中调度容器,分配到某Node节点,或从集群中驱离或定向调度到某节点等操作。
kubelet:在Node节点上按照配置文件中定义的容器规格启动容器。
kube-proxy:提供网络代理服务。
二、k8s node节点上的一些软件组成
1、包括网络插件、docker引擎、nginx等,它是一个非常复杂的软件系统.
2、操作系统比如:centos系统需要7.2 以上最好,centos6 安装docker 基本安装出现各种问题。
三、k8s和docker关系
可以说docker(类容器),可以说是k8s的基础,必须要安装容器环境,这里拿docker为例,我安装的是二进制k8s,所以每台机器,例如:master,node等都必须要安装
docker
k8s和Docker的更多相关文章
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录
0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.环境规划 软件 版本 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.服务器设置 1.把每一 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之flanneld网络介绍及部署(三)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.flanneld介绍 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 ...
- Kubernetes k8s 基于Docker For Windows
开启和安装Kubernetes k8s 基于Docker For Windows 0.最近发现,Docker For Windows Stable在Enable Kubernetes这个问题上 ...
- k8s部署docker容器
一.环境 需机器已部署好k8s和docker的环境 二.操作步骤 1.将制作好的镜像推送到docker仓库 docker tag nginx:test harbor:test-nginx docker ...
- k8s和Docker关系简单说明
关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 这篇文章主要介绍了k8s和Docker关系简单说明,本文利用图文讲解的很透彻,有需要的同学可以 ...
- k8s系列~docker mysql
docker封装mysql的一些心得 简介:今天咱们来聊聊容器化mysql的一些心得 版本:Docker version 18.03 mysql 5.7.21考虑条件: 1 选好合适的docker镜 ...
随机推荐
- hadoop-SSH免密登录配置
一:配置基础环境 一.修改主机名 修改 master 机器主机名 [root@server ~]# hostnamectl set-hostname master-wzg [root@server ~ ...
- 盘点十大GIS相关算法
1.道格拉斯-普克算法(Douglas–Peucker) 道格拉斯-普克算法(Douglas–Peucker algorithm,亦称为拉默-道格拉斯-普克算法.迭代适应点算法.分裂与合并算法)是将曲 ...
- 在命令行运行 python 抛出 ModuleNotFoundError 的解决方法
所要运行的 py 文件在子目录中,并且该文件引用了另一个子目录中的 py 模块.类似这样: 原因 在运行环境下, a.py 找不到 b.py 所以抛出 ModuleNotFoundError. 解决 ...
- Objects.equals有坑
前言 最近review别人代码的时候,发现有个同事,在某个业务场景下,使用Objects.equals方法判断两个值相等时,返回了跟预期不一致的结果,引起了我的兴趣. 原本以为判断结果会返回true的 ...
- 女朋友问我深浅copy到底是什么?
深浅拷贝 列表存放值的时候,是先申请一块内存空间,存放索引和内存地址的对应关系,其实通俗的来说列表内不存真正的值,是一种间接存放的对应关系: 列表内存不可变类型的数据 就比如说,如果现在将L列表索引0 ...
- 外部类能用private、protected修饰吗?内部类可以用private、protected修饰吗?
外部类不能用private.protected修饰不能.内部类能用private.protected修饰不能. 外部类的上一级程序单位是包,因此它只有两个使用范围:包内和包外,因此它只能用public ...
- Mybatis框架基础入门(四)--SqlMapConfig.xml配置文件简介
SqlMapConfig.xml中配置的内容和顺序如下: properties(属性) settings(全局配置参数) typeAliases(类型别名) typeHandlers(类型处理器) o ...
- Springmvc入门基础(三) ---与mybatis框架整合
1.创建数据库springmvc及表items,且插入一些数据 DROP TABLE IF EXISTS `items`; CREATE TABLE `items` ( `id` int(11) NO ...
- 客户端回调 Watcher ?
客户端 SendThread 线程接收事件通知,交由 EventThread 线程回调 Watcher. 客户端的 Watcher 机制同样是一次性的,一旦被触发后,该 Watcher 就失效了.
- 哪些是重要的 bean 生命周期方法?你能重载它们吗?
有两个重要的 bean 生命周期方法,第一个是 setup , 它是在容器加载 bean 的时候被调用.第二个方法是 teardown 它是在容器卸载类的时候被调用. The bean 标签有两个重要 ...