k8s(1)-核心概念篇

1 认识kubernetes

1.1 什么是kubernetes

Kubernetes 是一个开源的容器编排引擎,用来对容器化应用进行自动化部署、 扩缩和管理。
Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,方便进行声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统,其服务、支持和工具的使用范围广泛。

1.1.1 为什么需要kubernetes

应用部署三个阶段

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.1.2 k8s的特点

  • 自我修复
  • 弹性伸缩
  • 自动部署和回滚
  • 服务发现和负载均衡
  • 机密和配置管理
  • 存储编排
  • 批处理

1.2 企业级容器调度平台

1.2.1 Apache Mesos

基本概念
在这里插入图片描述
优势
在这里插入图片描述

1.2.2 Docker Swarm

基本概念
在这里插入图片描述
优势
在这里插入图片描述

1.2.3 Google kubernetes

基本概念
在这里插入图片描述
优势
在这里插入图片描述

2 集群架构与组件

2.1 相关组件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.1.1 控制面板组件(Master)

  • etcd
  • kube-apiserver
  • kube-controller-manager
  • cloud-controller-manager
  • kube-scheduler

2.1.2 节点组件

  • kubelet
  • kube-proxy
  • container runtime

2.1.3 附加组件

  • kube-dns
  • Ingress Controller
  • Prometheus
  • Dashboard
  • Federation
  • es

2.2 分层架构

在这里插入图片描述

  • 生态系统层
  • 接口层
  • 管理层
    在这里插入图片描述
  • 应用层
  • 核心层

3 核心概念与专业术语

3.1 服务的分类

在这里插入图片描述

3.1.1 无状态

代表应用:nginx,apache
优点:对客户端透明,无依赖关系,可以高效实现扩容、迁移
缺点:不能存储数据,需要额外的数据服务支撑

3.1.2 有状态

代表应用:mysql、redis
优点:可以独立存储数据,实现数据管理
缺点:集群环境下需要实现主从、数据同步、备份、水平扩容复杂

3.2 资源和对象

在这里插入图片描述
在这里插入图片描述

3.2.1 资源的分类

在这里插入图片描述
元数据级

  • Horizontal Pod Autoscaler(HPA)
    在这里插入图片描述
  • PodTemplate
    在这里插入图片描述
  • LimitRange
    在这里插入图片描述

集群级

  • Namespace
  • Node
    在这里插入图片描述
  • ClusterRole
  • ClusterRoleBinding

命名空间级

  • 工作负载型
    1. pod
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述 2. pod副本(replicas)
    在这里插入图片描述
    3. pod控制器(部署)

    • 适用无状态服务
      ReplicationController(RC)
      在这里插入图片描述

      ReplicaSet(RS)
      在这里插入图片描述

      Deployment
      特点:

      创建ReplicaSet / pod
      滚动升级/回滚
      平滑扩容和缩容
      暂停和恢复Deployment
      
    • 适用有状态服务
      statefulSet

      在这里插入图片描述
      在这里插入图片描述

      特点:

      稳定的持久化存储
      稳定的网络标志
      有序部署,有序扩展
      有序收缩,有序删除
      

      组成:

      Headless Service : DNS管理
      VolumeClaim Template:用户创建持久化卷的模板
      

      注意事项:

      1.k8s v1.5版本以上才支持
      2.所有pod的Volume必须使用PersistentVolume或者是管理员事先创建好
      3.为了保证数据安全,删除StatefulSet时不会删除Volume
      4.StatefulSet需要一个Headless Server来定义DNS domain,需要在StatefulSet之前创建好
      
    • 守护进程
      DaemonSet
      在这里插入图片描述
      在这里插入图片描述

    • 任务/定时任务
      Job
      CronJob

  • 服务发现
    在这里插入图片描述
    在这里插入图片描述

    service
    在这里插入图片描述

    ingress

  • 存储
    volume
    在这里插入图片描述

    CSI
    在这里插入图片描述

  • 特殊类型配置
    ConfigMap

    Secret
    在这里插入图片描述
    在这里插入图片描述

    DownwardAPI
    在这里插入图片描述

  • 其他
    Role
    在这里插入图片描述

    RoleBinding

3.2.2 资源清单

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

额外参数
在这里插入图片描述

3.3 对象规约和状态

3.3.1 规约(spec)

在这里插入图片描述

3.3.2 状态

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chenqiang_python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值