K8S的Ingress特性,组件介绍,基础概念

背景:无论是iptables还是ipvs方式代理service,其实都是工作在4层(TCP/UDP over IP)概念,4层的代理方案是无法对协议进行解析并处理的。所以,在K8S v1.1版本中,新增了 Ingress API,用来可以实现7层(应用层)代理方案

采用Ingress方案需要有应用层的软件提供支持,例如 nginx 的ingress方案:

Ingress-nginx github地址:https://github.com/kubernetes/ingress-nginx

Ingress-Nginx 官网地址:https://kubernetes.github.io/ingress-nginx

常规nginx反向代理方案:

Ingress-Nginx工作原理:


采用ingress-nginx的方案最终的效果:

使用 k8s配置的风格,实现在nginx 配置文件中配置代理规则 相同的效果;

同理还有 Ingress-HAproxy 方案,配置比起nginx稍微麻烦

K8S发展历程

谷歌内部Borg系统架构

K8S架构

 

其他插件

 

总结:
K8S发展历程:

MESOS  APACHE  分布式资源管理框架   2019-5  Twitter  》 Kubernetes

Docker Swarm  2019-07   阿里云宣布  Docker Swarm  剔除

Kubernetes  Google    10年容器化基础架构  borg   GO 语言   基于谷歌内部Borg系统 


K8S特点:

  1.         轻量级:消耗资源小
  2.         开源
  3.         弹性伸缩
  4.         负载均衡:IPVS
  • 资源清单:资源   掌握资源清单的语法   编写 Pod   掌握 Pod 的生命周期***
  • Pod 控制器:掌握各种控制器的特点以及使用定义方式
  • 服务发现:掌握 SVC 原理及其构建方式
  • 存储:掌握多种存储类型的特点 并且能够在不同环境中选择合适的存储方案(有自己的简介)
  • 调度器:掌握调度器原理   能够根据要求把Pod 定义到想要的节点运行
  • 安全:集群的认证  鉴权   访问控制 原理及其流程 
  • HELM:Linux yum    掌握 HELM 原理   HELM 模板自定义  HELM 部署一些常用插件
  • 运维:修改Kubeadm 达到证书可用期限为 10年     能够构建高可用的 Kubernetes 集群

服务分类
    有状态服务:DBMS  
    无状态服务:LVS APACHE



高可用集群副本数据最好是 >= 3 奇数个


  • APISERVER:所有服务访问统一入口
  • CrontrollerManager:维持副本期望数目
  • Scheduler::负责介绍任务,选择合适的节点进行分配任务
  • ETCD:键值对数据库  储存K8S集群所有重要信息(持久化)
  • Kubelet:直接跟容器引擎交互实现容器的生命周期管理
  • Kube-proxy:负责写入规则至 IPTABLES、IPVS 实现服务映射访问的
  • COREDNS:可以为集群中的SVC创建一个域名IP的对应关系解析
  • DASHBOARD:给 K8S 集群提供一个 B/S 结构访问体系
  • INGRESS CONTROLLER:官方只能实现四层代理,INGRESS 可以实现七层代理
  • FEDERATION:提供一个可以跨集群中心多K8S统一管理功能
  • PROMETHEUS:提供K8S集群的监控能力
  • ELK:提供 K8S 集群日志统一分析接入平台

 

Pod:

Pod是K8S中最小调度单位,一个Node上可以有一个或多个pod,每个pod中运行着容器

Pod类型:

  1. 自主式 Pod
  2. 控制器管理的 Pod

RC、RS:新版本中推荐使用RS,比RC多了选择器功能

Deployment:在RS基础上 扩缩容、滚动升级

HPA:利用资源监控信息动态分配资源

StatefulSet:有状态服务

DaemonSet:适用于守护进程服务

Job:任务与定时器任务


Service:服务发现


网络通信模式

新版本的K8S中,已经使用IPVS方案替代Iptables方案,性能更高

 

ETCD在Flannel中的作用:

不同情况下网络通讯方式:

 

posted @ 2024-10-24 15:04  CharyGao  阅读(5)  评论(0编辑  收藏  举报