前文 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. 【Java】包装类

    文章目录 包装类 什么是包装类 基本数据类型-->包装类 包装类-->基本数据类型 自动装箱与自动拆箱 基本数据类型.包装类与String的转换 基础数据类型.包装类-->Strin ...

  2. MATLAB的基识(整理)

    %正弦函数在MATLAB中如何实现%1.sin(45°)注意:参数值需要用"弧度"去定义>>x=sin(45*pi/180);%2.MATLAB中注意:开方-sqrt( ...

  3. Solon 开发

    Solon 开发 一.注入或手动获取配置 二.注入或手动获取Bean 三.构建一个Bean的三种方式 四.Bean 扫描的三种方式 五.切面与环绕拦截 六.提取Bean的函数进行定制开发 七.自定义注 ...

  4. 一网打尽JVM垃圾回收知识体系

    垃圾回收的区域 堆:Java 中绝大多数的对象都存放在堆中,是垃圾回收的重点 方法区:此中的 GC 效率较低,不是重点 由于虚拟机栈的生命周期和线程一致,因此不需要 GC 对象判活 在垃圾收集器对堆进 ...

  5. Javascript中字符串常用方法

    JavaScript字符串常用方法 (1)获取相应位置的字符(charAt()) var str="你好,小小鸟!" var s=str.charAt(1) //获取到索引为1的字 ...

  6. java有四种访问权限

    Java面向对象的封装性是通过对成员变量和方法进行访问控制实现的,访问控制分为4个等级:私有.默认.保护和公有,具体规则如下表:

  7. golang中的rpc开发

    golang中实现RPC非常简单,官方提供了封装好的库,还有一些第三方的库 golang官方的net/rpc库使用encoding/gob进行编解码,支持tcp和http数据传输方式,由于其他语言不支 ...

  8. python+fastdfs+nginx实现打包下载功能

    环境介绍:生产服务器开发人员需要给client下发数据,主要是图片及视频:图片服务器用fastdfs,下载由nginx 来提供: java 程序来调用此脚本,传递参数来决定打包文件内容: #!/usr ...

  9. 集合框架-TreeSet-Comparator比较器

    1 package cn.itcast.p5.treeset.demo; 2 3 import java.util.Iterator; 4 import java.util.TreeSet; 5 6 ...

  10. Spring源码-IOC部分-Xml Bean解析注册过程【3】

    实验环境:spring-framework-5.0.2.jdk8.gradle4.3.1 Spring源码-IOC部分-容器简介[1] Spring源码-IOC部分-容器初始化过程[2] Spring ...