Kubernetes介绍

2013年docker诞生,自此一发不可收拾,它的发展如火如荼,作为一个运维如果不会docker,那真的是落伍了。

而2014年出现的kubernetes(又叫k8s)更加炙手可热,我想大部分人仅仅是听说过,简单了解它,但并没有真正使用过。那今天本文将带着大家一起走近kubernetes。

为啥kubernetes又叫做k8s?据说是因为kubernetes这个单词太长,不好记,而首字母和尾字母中间有8个字母,所以就简写成了k8s。Kubernetes翻译成中文,意思是“舵手”。

本文开篇之所以提到docker,是因为k8s之所以火,得益于docker。K8s简单说,是用来实现容器集群管理的系统,用于自动部署、扩展和管理容器。它是由Google公司开发,其原型为Google内部容器管理系统Borg。

Borg经过十多年地优化、改进,其功能和效率不言而喻,k8s项目的目的就是把Borg最精华的部分提取出来,使现在的开发者能够更简单、直接地应用。K8s自诞生之日起就注定了它的不平凡之路。

前几年Openstack很火,但是这两年k8s将要盖过Openstack了,虽然k8s不能完全替代Openstack,但在云计算领域,k8s的确是后起之秀,能用容器云解决的问题,坚决不用传统云。

其实和k8s功能类似的容器管理工具还有一个Swarm,它是docker官方开发,按理说docker官方的东西不更应该被大家普及么,可事实上k8s的体验比官方的Swarm更加好,其根本原因还是Borg。

要想更了解K8s,需要先理解几个相关的概念。

node 一个物理机器,或一个虚拟机(KVM类型,而不是容器类型);将虚拟机作为node一般是历史原因,或是为了彻底隔绝杜绝安全问题。

cluster 一组node需要被集中管理,统一叫一个cluster。一个cluster有一个master和多个node。每个node里面有一个kubelet用来服从master调度并管理node本身。

app containers 一个node里面可以有一个或多个容器化的应用程序,即app container。可以简单认为就是docker容器。

pod 多个app containers之间可能需要共享硬盘,或共享同一个ip,这样一组app containers合起来叫一个pod。典型应用如:一个容器不停产生日志到本地硬盘,另一个容器不停读本地硬盘并上传日志到日志服务器。

service 当一个node挂了时,上面的pod及pod里面的container也自然都挂了。为了死不掉,需要有个pod上层的抽象,pod挂了,service还在。service通过如下几种方式暴露出来。

  • ClusterIP (default),cluser的内网ip,只能此cluster内可见
  • NodePort,端口NAT到cluster外面
  • LoadBalancer,在cluster外面搞个LB并分配个外面可见的固定IP给LB
  • ExternalName,类似CNAME方式

deployment 配置yaml格式,存在master上,当机器故障或需要横向scale时或需要更新binary时,master根据配置搞定一切。

一张图总结下:

 

Kubernetes集群(概念篇)的更多相关文章

  1. Kubernetes集群部署篇( 一)

    K8S集群部署有几种方式:kubeadm.minikube和二进制包.前两者属于自动部署,简化部署操作,我们这里强烈推荐初学者使用二进制包部署,因为自动部署屏蔽了很多细节,使得对各个模块感知很少,非常 ...

  2. 这一篇 K8S(Kubernetes)集群部署 我觉得还可以!!!

    点赞再看,养成习惯,微信搜索[牧小农]关注我获取更多资讯,风里雨里,小农等你,很高兴能够成为你的朋友. 国内安装K8S的四种途径 Kubernetes 的安装其实并不复杂,因为Kubernetes 属 ...

  3. Kubernetes集群搭建之Master配置篇

    本次系列使用的所需部署包版本都使用的目前最新的或最新稳定版,安装包地址请到公众号内回复[K8s实战]获取 今天终于到正题了~~ 生成kubernets证书与私钥 1. 制作kubernetes ca证 ...

  4. Kubernetes集群搭建之系统初始化配置篇

    Kubernetes的几种部署方式 1. minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用.不能用于生产环境 ...

  5. Kubernetes全栈架构师(二进制高可用安装k8s集群部署篇)--学习笔记

    目录 二进制高可用基本配置 二进制系统和内核升级 二进制基本组件安装 二进制生成证书详解 二进制高可用及etcd配置 二进制K8s组件配置 二进制使用Bootstrapping自动颁发证书 二进制No ...

  6. 基于Kubernetes集群部署skyDNS服务

    目录贴:Kubernetes学习系列 在之前几篇文章的基础,(Centos7部署Kubernetes集群.基于kubernetes集群部署DashBoard.为Kubernetes集群部署本地镜像仓库 ...

  7. K8S学习笔记之二进制的方式创建一个Kubernetes集群

    0x00 单节点搭建和简述 minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用.不能用于生产环境. 官方地址: ...

  8. 安装部署 Kubernetes 集群

    安装部署 Kubernetes 集群 阅读目录: 准备工作 部署 Master 管理节点 部署 Minion 工作节点 部署 Hello World 应用 安装 Dashboard 插件 安装 Hea ...

  9. Kubernetes 集群中使用 Helm 搭建 Spinnaker

    在我们部署Spinnaker之前,我们需要一个YAML格式的配置文件,它会包含了一些配置信息.可以从Spinnaker Helm Chart repository[2]获得这个文件. $curl -L ...

  10. 从0到1使用Kubernetes系列(三):使用Ansible安装Kubernetes集群

    前两期的文章介绍了Kubernetes基本概念和架构,用Kubeadm+Ansible搭建Kubernetes集群所需要的工具及其作用.本篇介绍怎么使用Ansible安装Kubernetes集群. 启 ...

随机推荐

  1. uCOS-II消息邮箱的使用

    具体使用方法与信号量的方式大同小易.   首先建立一个OS_EVENT结构体(事件控制块)的指针:   OS_EVENT *MSBOX;   然后建立消息邮箱,返回值为事件控制块的指针:   MSBO ...

  2. React Router 4 的使用(2)

    Route Rendering Props 对于给定的路由如何渲染组件,有三种选项:component.render.children.你可以查看 <Route> 的文档来获取更多的信息, ...

  3. Ajax全接触(2)

    例子简介 1.查询员工信息,可以通过输入员工编号查询员工基本信息: 2.新建员工信息,包含员工姓名,员工编号,员工性别,员工职位: 实现: 1.纯html页面,用来实现员工查询和新建的页面: 2.ph ...

  4. TIDB3 —— 三篇文章了解 TiDB 技术内幕 - 说计算

    原文地址:https://pingcap.com/blog-cn/tidb-internal-2/ 关系模型到 Key-Value 模型的映射 在这我们将关系模型简单理解为 Table 和 SQL 语 ...

  5. linux 中$ 意思

    grep -n sh$ text.txt   查找文件内容中以 Sh 结尾. grep -n ^a text.txt    文件文件内容中以 a 开头. grep -n ^$ text.txt     ...

  6. wubiuefi-支持新版本ubuntu的wubi

    由于某些原因,ubuntu官方不再提供新版的wubi 这就使得部分想快速且安全尝试新版ubuntu的用户望而却步 最近在外文网站找到了wubi的新版本wubiuefi,支持最新版的ubuntu 目前支 ...

  7. oracle远程导出/导入

    创建db_link,远程导出/导入.expdp/impdp Oracle数据库本地磁盘空间有限,或应用系统的需要,会通过远程的方式导出数据库.在oracle当中,exp远程导库的速度太慢,而expdp ...

  8. IOS中使用百度地图定位后获取城市坐标,城市名称,城市编号信息

    IOS中使用百度地图定位后获取城市坐标,城市名称,城市编号信息 /**当获取到定位的坐标后,回调函数*/ - (void)didUpdateBMKUserLocation:(BMKUserLocati ...

  9. 在Python中使用正则表达式去掉字符串里的html标签

    有时候会获得一些带html标签的字符串,需要把html标签去掉,获得干净的字符串,这时候可以使用正则表达式. 代码如下: import re htmeString = '''<ul id=&qu ...

  10. visio studio code 用chrom启动打开本地html

    { // 使用 IntelliSense 了解相关属性. // 悬停以查看现有属性的描述. // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linki ...