前文 Kubernetes笔记(一):十分钟布置一套K8s环境 介绍了怎么快速建立一个k8s体系。为了持续运用k8s来布置咱们的应用,需要先对k8s中的一些根本组件与概念有个了解。

Kubernetes是什么

Kubernetes是Google于2014年根据其内部Brog体系开源的一个容器编列办理体系,可运用声明式的装备(以yaml文件的方法)主动地履行容器化应用程序的办理,包含布置、弹性、负载均衡、回滚等。

kubernetes供给的功能:

  • 主动发布与弹性:能够经过声明式的装备文件界说想要布置的容器,Kubernetes将主动进行容器的布置,达到希望的结果;经过指定容器副本数,或许设置根据资源负载情况(如CPU、内存运用率),主动对容器组进行快速的弹性——增大或缩小容器数量
  • 滚动晋级与灰度发布:采用逐步替换的策略完成滚动晋级,运用Kubernetes也能够很轻易地办理体系的灰度发布
  • 服务发现与负载均衡:Kubernetes经过DNS称号或IP地址暴露容器的拜访方法,而且可在同一容器组内完成负载分发与均衡
  • 存储编列:Kubernetes能够主动挂载指定的存储体系,如local storage/nfs/云存储等
  • 毛病恢复:Kubernetes主动重启现已停机的容器QQ空间破解,替换不满足健康检查的容器
  • 密钥与装备办理:Kubernetes能够存储与办理灵敏信息,如Docker Registry的登录凭证,密码,ssh密钥等

Kubernetes架构

咱们先来看一张Kubernetes的架构图

Kubernetes是一套分布式体系, 与大多数分布式体系类似,包含操控节点(master node)与作业节点(worker node)。

master node

操控节点便是指挥官,担任发号施令的,其上运转一些办理服务来对整个体系进行办理与操控,包含

  • apiserver:作为整个体系的对外接口,供给一套Restful API供客户端调用,任何的资源恳求/调用操作都是经过kube-apiserver供给的接口进行,如kubectl、kubernetes dashboard等办理工具便是经过apiserver来完成对集群的办理
  • kube-scheduler:资源调度器,担任将容器组分配到哪些节点上
  • kube-controller-manager:办理操控器,集群中处理惯例使命的后台线程,破解QQ空间访问权限包含节点操控器(担任监听节点停机的事件并作出对应响应)、endpoint-controller(改写服务与容器组的关联信息)、replication-controller(保护容器组的副本数为指定的数值)、Service Account & Token操控器(担任为新的命名空间创立默许的 Service Account 以及 API Access Token)
  • etcd:数据存储,存储集群一切的装备信息
  • coredns:完成集群内部经过服务称号进行容器组拜访的功能

worker node

作业节点便是详细干活的小兵,其上也运转一些服务来履行指挥官分派的使命,包含

  • kubelet:是作业节点上履行操作的署理程序,担任容器的生命周期办理,定期履行容器健康检查,并上报容器的运转状况
  • kube-proxy:是一个具有负载均衡才能的简单的网络拜访署理,担任将拜访某个服务的恳求分配到作业节点的详细某个容器上(kube-proxy也运转于master node上)
  • Docker Daemon:这个不难理解,一切服务或容器组都要以Docker容器的方法来运转(但Kubernetes其实不局限于Docker,它支撑任何完成了Kubernetes容器引擎接口的容器引擎,如containerd、rktlet)

别的还有既在master node上也在worker node上运转的网络通讯组件 kube-flannel。这些服务组件一般运转在kube-system的命名空间中,如图

Kubernetes根本概念

咱们再来看第二张图

功能组件在上面现已做了介绍。Kubernetes的操作目标主要包含容器组(Pod),服务(Service),副本操控器(replication-controller),及环绕这些的其它辅助目标

Pod

Pod是Kubernetes创立或布置的最小根本单元。一个Pod封装一个或多个应用容器、存储资源、一个独立的网络IP以及办理操控容器运转方法的策略选项。Pod中的每个容器同享网络命名空间(包含IP与端口),Pod内的容器能够运用localhost相互通讯。Pod能够指定一组同享存储卷Volumes,Pod中一切容器都能够拜访同享的Volumes,Volumes用于数据耐久化,防止容器重启丢掉数据。

Volume

Kubernetes运用Volume来处理Pod中容器重启数据丢掉的问题,以及Pod中多个容器间数据同享的问题。Kubernetes支撑的Volume类型包含:

  • emptyDir:当Pod分配到Node上时,将会创立emptyDir,只要Node上的Pod一直运转,Volume就会一直存在。当Pod(不论任何原因)从Node上被删去时,emptyDir也同时会删去,存储的数据也将永久删去,但删去容器不影响emptyDir
  • hostPath:hostPath答应挂载Node上的文件体系到Pod里边去。如果Pod需要运用Node上的文件,能够运用hostPath
  • nfs: 运用nfs网络文件体系供给的同享目录

ReplicationController

ReplicationController保证在任何时候都有按装备的Pod副本数在运转。现在推荐运用装备ReplicaSet(下一代ReplicationController)的Deployment来建立副本办理机制。

ReplicaSet

ReplicaSet是下一代ReplicationController,两者的唯一区别是ReplicaSet支撑新的根据调集的选择器,而ReplicationController仅支撑根据相等选择器的需求。

Deployment

Deployment为Pod与ReplicaSet供给了声明式的界说,描述你想要的目标状况是什么,Deployment controller就会帮你将Pod与ReplicaSet的实践状况改变到你想要的目标状况。

Service

一个Service能够看做一组供给相同服务的Pod的对外拜访接口。Kubernetes供给两种类型的Service:

  • NodePort: 集群外部能够经过Node IP与Node Port来拜访详细某个Pod
  • ClusterIP:指经过集群的内部IP暴露服务,服务只能够在集群内部能够拜访,这也是默许的 ServiceType

Label

Label便是一对key/value,能够附加到各种资源目标上,如Node、Pod、Service等,一个资源目标能够界说任意数量的Label。能够经过Label选择器来选择具备某个(些)Label的资源。

PV & PVC

PersistentVolume(PV) 为用户供给了一个存储笼统,由办理员设置,它是集群的一部分。就像节点是集群中的资源一样,PV也是集群中的资源。 PV是Volume之类的卷插件,但具有独立于Pod的生命周期。

PersistentVolumeClaim(PVC)是用户存储的恳求。它与Pod类似。2020QQ空间相册密码破解Pod耗费节点资源,PVC耗费PV资源。Pod能够恳求特定级别的资源(CPU和内存)。PVC能够恳求特定大小和拜访形式的存储资源(例如,能够以读/写或只读形式挂载)。

Secret

Secret处理了密码、token、密钥等灵敏数据的存储问题,Secret的三种类型:

  • Service Account :用来拜访Kubernetes API,由Kubernetes主动创立,而且会主动挂载到Pod的/run/secrets/kubernetes.io/serviceaccount目录中
  • Opaque :Base64编码格式的Secret,用来存储密码、密钥等
  • kubernetes.io/dockerconfigjson :用来存储docker registry的认证信息

ConfigMap

ConfigMap用来保存key/value对的装备数据,这个数据能够在Pods里运用,或许被用来为像controller一样的体系组件存储装备数据。ConfigMap能够方便的处理不含灵敏信息的字符串(灵敏信息可运用Secret)。

Namespace

Namespace类似于Kubernetes中的虚拟集群,便于不同的分组在同享运用整个集群的资源的同时还能被别离办理。比方咱们如果开发测验共用一个Kubernetes集群,则能够将开发环境的服务布置到dev的namespace,测验环境的布置到test的namespace。

Ingress

为集群服务供给外部拜访,包含根据Nginx与Traefik两个版别,为服务供给域名绑定拜访与途径路由功能。也能够根据Ingress完成服务的灰度发布。

总结

本文对Kubernetes中触及的根本组件与概念进行了收拾,对其根本构成有了一个大致的理解与印象。下一篇将从一个实践出发,完成一个根据Gitlab+Jenkins+K8s的CI/CD流程,以对触及的各个组件进行深化了解与学习。

本文转载于:https://www.jmwww.net/a/13201.html 尊重作者,转载必须保留连接

新手菜菜之2020Kubernetes详细介绍大全的更多相关文章

  1. WDCP是什么 关于WDCP的详细介绍

    WDCP是WDlinux Control Panel的简称,是一套用PHP开发的Linux服务器管理系统以及虚拟主机管理系统,,旨在易于使用Linux系统做为我们的网站服务器,以及平时对Linux服务 ...

  2. web前端之 HTML标签详细介绍

    html标签的分类 点我查看完整的html标签介绍 在html中,标签一般分为块级标签和行内标签 块级标签:块元素一般都从新行开始,它可以容纳内联元素和其他块元素,常见块元素是段落标签"p& ...

  3. Oracle11g服务详细介绍

    Oracle11g服务详细介绍及哪些服务是必须开启的? Oracle ORCL VSS Writer Service Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Se ...

  4. 安卓app开发-05-Android xml布局详细介绍

    安卓app开发-05-Android xml布局详细介绍 虽然说有 墨刀,墨客 这些图形化开发工具来做 Android 的界面设计,但是我们还是离不开要去学习做安卓原生app,学习 xml 布局还是必 ...

  5. 转 Oracle 11g服务详细介绍

    转自http://www.cnblogs.com/userWuLiang/archive/2013/04/13/3017900.html Oracle 11g服务详细介绍及哪些服务是必须开启的? 成功 ...

  6. [No0000A7]批处理经常用到的变量及批处理>NUL详细介绍

    绝对路径是指调用绝对的程序位置的路径,例如: start C:\Windows\test.exe 相对路径是文件改变路径以后还会按照变量的路径所在位置去调用,例如: start %WINDIR%\te ...

  7. linux配置网卡IP地址命令详细介绍及一些常用网络配置命令

    linux配置网卡IP地址命令详细介绍及一些常用网络配置命令2010-- 个评论 收藏 我要投稿 Linux命令行下配置IP地址不像图形界面下那么方 便,完全需要我们手动配置,下面就给大家介绍几种配置 ...

  8. _MSC_VER详细介绍

    _MSC_VER详细介绍 转自:http://www.cnblogs.com/braver/articles/2064817.html _MSC_VER是微软的预编译控制. _MSC_VER可以分解为 ...

  9. php CGI、Fastcgi、PHP-FPM的详细介绍与之间的关系

    以下PHP CGI.Fastcgi.PHP-FPM的一些信息归纳和汇总----->详细介绍与之间的关系 一:CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的 web ...

随机推荐

  1. AXAJ基础知识学习

    AXAJ基础知识学习 博客首页 Ajax简介 ajxa全称是Asynchronous Javascript And XML ,就是异步的JS 和XML 通过Ajax可以再浏览器中向服务器发送异步请求, ...

  2. 分布式一致性协议Raft,以及难搞的Paxos

    https://blog.csdn.net/colorant/article/details/73887706

  3. 基于SpringBoot如何实现一个点赞功能?

    基于SpringBoot如何实现一个点赞功能? 解析: 基于 SpringCloud, 用户发起点赞.取消点赞后先存入 Redis 中,再每隔两小时从 Redis 读取点赞数据写入数据库中做持久化存储 ...

  4. golang中的标准库flag

    Go语言内置的flag包实现了命令行参数的解析,flag包使得开发命令行工具更为简单. os.Args 如果你只是简单的想要获取命令行参数,可以像下面的代码示例一样使用os.Args来获取命令行参数. ...

  5. ajax返回获取的值在其他地方获取

    继续上个问题的后续问题,因为要获取token进行身份验证,但是又不想写死token值,通过以下方式解决: 1.定义一个分离出来的方法. 2.定义一个全局变量.局部变量. 3.把ajax改成同步的.as ...

  6. APC 篇——备用 APC 队列

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...

  7. Luogu P1314 [NOIP2011 提高组] 聪明的质监员

    P1314 [NOIP2011 提高组] 聪明的质监员 题意 题目描述 给定\(n\)个物品,给定每个物品的 重量 \(w_i\) 和 价值 \(v_i\) 给定一个标准值 \(s\) 以及一个参数 ...

  8. ApacheCN jQuery 译文集 20211121 更新

    创建 jQueryMobile 移动应用 零.序言 一.jQueryMobile 原型制作 二.jQuery Mobile 网站 三.分析.长表单和前端验证 四.QR 码.地理位置.谷歌地图 API ...

  9. HowToDoInJava 其它教程 1 · 翻译完成

    原文:HowToDoInJava 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. ApacheCN 学习资源 目录 Maven 教程 如何在 ...

  10. Python绘图工具turtle库的使用

    #PythonDraw.py import turtle #引入了一个绘图库(海归库) turtle.setup(650,350,200,200) #设置一个窗体 turtle.penup() #将画 ...