kubernetes 是使用go语言进行开发的,并是开源的。

  • kubernetes 的特点
    1、轻量级,占用资源少
    2、开源
    3、可以进行弹性伸缩
    4、负载均衡,IPVS

pod 是k8s 运行的最小单元

pod 跟docker的关系
一个pod 运行多个容器,他们共享着UTS + NET + IPC 名称空间

  • pod 控制器
    pod控制器由pod启动一个模板,k8s 用于按照人的预期进行 启动(副本级 生命周期 健康检查)
    k8s 有多种的pod控制器

  • pod控制器类型
    Deployment (部署)
    Daemonset

名称空间

  • name
    由于k8s 内部使用,资源来定义自己每一种逻辑概率,故每一种资源都应该有自己的“名称”。
    “名称”就是一种“资源”,资源有几个维度信息,1、版本api 2、类型kind 3、元数据 metadata 4、定义清单 spec 5、状态 status

  • namespace

随着k8s 的项目增多和使用的人员增多,集群规模的增多,我们需要一直隔离“资源”的方法,这就叫名称空间

“名称空间”可以理解为k8s的虚拟集群组

不同的“名称空间” 名称可以相同 ,但是相同的“名称空间”,名称不能相同 (这话有点要,慢慢品)

合理的使用名称空间,可以方便k8s 管理员更好的对交付到k8s里的资源进行管理和浏览

k8s 是存在默认的“名称空间” default kube_system kube_pubilc

查询k8s特定的资源要带上相应的名称空间

“名称空间”是可以进行 增 删 改 查

标签(有点类似于Foxmail的规则)

  • 标签是k8s 的特殊管理方式,便于管理各种资源

Label
一个标签可以对应多个资源,一个资源也可以对应多个标签。标签是多对多的关系

一个资源对应多个标签,可以实现不同的维度的管理

标签的组成是: key = vale

与标签类似,还有一种注释

Label选择器

给资源打上标签后,可以使用标签选择器过滤指定的标签

标签选择器,目前有两种

1、是基于等值关系,等于 不等于
2、基于集合关系:属于 不属于 存在

很多资源都是内嵌标签选择器字段

kubernetes 的框架

kubernetes的基本概念

一、pod的概念
1、自定义pod
2、管理器管理的pod
(1)RS、RC 
(2)deployment
(3)HPA
(4)staterfullSet
(5)DamentSet
(6)Job、Cronjob

  

3、服务发现
4、pod协同
二、网络通讯模式

kubernetes 网络模式假设所有的pod都可以在一个可以连通的扁平网络空间当中。
所谓的扁平化网络空间就是通过 可以通过“IP直接可以到达,”但是底层也是有一堆的转换机制。

同一pod 是用同一个 lo 是通过loackhost 进行通讯,共用一个网络站进行访问

各个pod 的通讯访问,是通过 overlay network

pod 跟service 之前又是通过iptables 的转发进行访问

overlay network 是不比较重要
在这里插入图片描述

  • 一、网络通讯模式说明
  • 二、组件通讯模式说明

kubernetes的关键字含义

资源清单

kubernetes 资源清单概念
  • 1、名称空间级别的资源清单
  • 2、集群级别的资源
资源清单——yaml语法格式
通过资源清单表写pod
pod生命周期
  • 1、imitC
  • 2、pod phase
  • 3、容器探针
    (1)、livenessprode
    (2)、readinessprode
  • 4、pod hook

pod 控制器(kubernetes的灵魂)

什么是pod控制器
pod控制器类型
  • 1、ReplicationController和ReplicaSet

RC 是用来确保容器应用的副本数始终跟自定义的副本数是一致的。如果有容器退出,会创建一个新的pod来代替。而且如果有多出来的容器会自动的回收。新版本的kubernetes建议使用ReplicaSet 代替ReplicationController

ReplicationController和ReplicaSet 本质上是没有什么区别,但是ReplicaSet支持集合式的selector

RC控制器介绍

  • 2、Deployment

ReplicaSet可以独立使用,但是一般建议使用Deployment来自动管理。
ReplicaSet 是不用考虑兼容性的问题(比如 ReplicaSet不支持rolling-updata 但是Deployment可以支持)

Horizontal Pod Autoscaling 简称 HPA 仅使用于ReplicaSet和Deployment ,是根据v1版的pod 是CPU使用率所扩容。在vlalpha版本中,支持用户和内存自定义的metric扩缩容
HPA介绍

  • 3、DaemonSet

DaemonSet 确保全部(或者一些)node运行一个pod副本,当有node加入集群时,也会新增一个pod。当有node移除时,也会被回收。删除DaemonSet也是删除对应创建的pod

使用DaemonSet的一些典型的用法:
1、运行集群存储Daemon。例如在每一个node上运行,glusterd,ceph
2、在每个node上运行日志收集daemon,例如fluentd ,logstash
3、在每个node上运行监控daemon,例如:pormetheus (普罗米修斯) node Exporter

  • 4、Job
  • 5、CronJob
  • 6、statefulSet

statefulSet是用于解决用户有状态服务的问题,(ReplicaSet和Deployment是问无状态服务所设计的)。起应用场景包括:

1、稳定持久化的存储 即pod重新调度还可以重新访问相同的持久化的数据,基于PVC实现

2、稳定的网络标记 即pod重新调度后podname和hostname不变。基于headlessservice实现的

3、有序部署,有序扩展
即pod是有顺序的,在部署或者扩展的时候是根据定义顺序进行依次进行的(即从0到N-1,在下一个pod运行前所有之前的pod必须都是running和ready状态) 是基于init containers实现

4、有序收缩,有序删除(即N-1到0)

statefulset介绍

  • 7、Horizontal Pod Autoscaling

服务发现

service原理
  • service含义
  • service 常见分类
    (1)ClsterIP
    (2)Noteport
    (3) ExternalName
  • service 实现方式
    (1)userspace
    (2)iptables
    (3)ipvs

服务的分类

  • 1、有状态服务:DBMS
  • 2、无状态服务:LVS Apache

存储(掌握多种存储类型的特点)

一、 configMap

(1)定义概念
(2)使用文件创建configMap
(3)使用字母创建cnfigMap

二、 pod中使用configMap

(1)configMap代替环境变量
(2)configMap设置命令行参数
(3)通过数据卷插件使用configMap

三、 configMap热更新

(1)实例演示
(2)更新触发说明

Secret

(1)Secret概念定义
(2)Secret 分类
(3)Secret 的Service Account
(4)opoque secret
1、特殊说明
2、创建
3、使用
3.1 Secret挂载到Volume
3.2 Secret 导出到环境变量中
(5)kubernetes.io /dockerconfigjson

volume

(1)定义概念——卷类型
(2)emptyDir
* 2.1 说明
* 2.2 用途假设
* 2.3 实验演示

(3)hostPath
* 3.1 说明
* 3.2 用途假设
* 3.3 实验演示

PV

(1)概念解释

  • 1.1 PV
  • 1.2 PVC
  • 1.3 类型说明

(2)PV

  • 2.1 后端类型
  • 2.2 PV访问类型
  • 2.3 回收策略
  • 2.4 状态
  • 2.5 实例演示

(3)PVC演示实际

调度器

调度器概念

(1)概念
(2)调度过程
(3)自定义调度器

调度器亲和性

(1)nodeAffintiy —节点柔和性
1.1 preferredDuringSchedulingIgnoredDuringExecution:软策略
1.2 requiredDuringSchedulingIgnoredDuringExecution:硬策略

(2)podAffintiy —pod柔和性

2.1 preferredDuringSchedulingIgnoredDuringExecution:软策略
2.2 requiredDuringSchedulingIgnoredDuringExecution:硬策略

(3)柔和性运算符

集群安全机制

机制说明
认证

(1)Http Token
(2)Http Base
(3)Https

鉴权

(1)AlwaysDeny
(2)AlwaysAllow
(3)ABAC
(4)WebBook
(5)RBAC
5.1 RBAC
5.2 Role and ClusterRole
5.3 RoleBinDing and ClusterBinDing
5.4 Resources
5.5 to Subjectes
5.6

准入控制

HELM

HELM概念

(1)HELM概念说明
(2)组将构成
(3)HELM部署
(4)HELM定义

HELM 部署实例

(1)HELM部署dashboard
(2)metrics-service
2.1 HPA演示
2.2资源控制
2.2.1 pod
2.2.2 名称空间
(3)普罗米修斯
(4)ELK

运维

kubeadm源码修改
kubernetes 高可用集群构建
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐