Kubernetes - Mechanism
|Word Count:12|Reading Time:1mins
基础架构
Master
Worker
工作流程
插件
Author: zhongmingmao
Copyright Notice: All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Related Articles

2023-01-30
Kubernetes - Envoy
Kubernetes Kubernetes 主要基于 Kernel 技术栈,缺少精细化的高级流量治理 Kubernetes 已有的流量治理能力:Service + Ingress Service 在 L4,基于 Kernel 技术栈,无法实现精细化的高级流量管理 Ingress 在 L7,主要针对入站流量 架构演进单体 访问服务 微服务 业务代码一般会集成统一的 SDK,耦合了很多平台侧的能力 Service MeshSidecar Service Instance 与 Sidecar Proxy 在同一个 Network Namespace,相当于一个 loopback,可以明文传输 能力下沉 通过 Sidecar 来实现微服务治理,业务部门更聚焦于业务逻辑 Istio特性 HTTP、gRPC、WebSocket、TCP 的自动负载均衡 通过丰富的路由规则实现重试、故障转移、故障注入,可以对流量行为进行细粒度控制 可插入的策略层和配置 API,支持访问控制、速率限制和配额 对出入集群入口和出口中的所有流量的自动度量指标、日志记录和跟踪 通过强大的基于身份的验证和授权,...

2023-02-15
FaaS - Workflow

2021-07-08
Kubernetes -- Pod + 容器设计模式
基本概念容器 ► Pod ► Kubernetes 容器:一个视图被隔离、资源受限制的进程 容器 PID=1 的进程为应用本身(管理容器 = 管理应用) Pod:进程组 Kubernetes:操作系统 容器镜像:软件安装包 进程组 容器是单进程模型(容器 == 应用 == 进程,只能管理 PID=1 的进程,并不是说容器内只能运行一个进程) 容器内 PID=1 的进程为应用进程,本身不具备进程管理能力 如果将 PID=1 的进程改为 systemd,导致:管理容器 = 管理systemd != 管理应用 因此需要引入 Pod 原子调度单位紧密协作:必须部署在同一台机器上并共享某些信息 关系 亲密关系 – 调度解决 两个应用(Pod)需要运行在同一台宿主机上 超亲密关系 – Pod 解决 会发生直接的文件交换 使用 localhost 或者 Socket 文件进行本地通信 会发生非常频繁的 RPC 调用 会共享某些 Linux Namespace 实现机制解决的...

2023-02-05
DevOps - IaC
IaC概述 使用代码定义基础设施(声明式:云资源、配置、工具安装) 借助 Git 实现对基础设施的版本控制 有状态 - Diff + Patch 优势 幂等 版本控制 使用 Git 进行变更管理(批准、安全检查、自动化测试) 清晰的变更行为 快速配置基础设施 能力 提供以编码工作流来创建基础设施 更改或者更新现有的基础设施 安全地更改基础设施 与 CICD 工具集成,形成 DevOps 工作流 提供可复用的模块,方便协作和共享 实施安全策略和生产标准 实现基础设施的团队协作 工具 Terraform Pulumi Crossplane Terraform核心架构 全新的配置语言 HCL - HashiCorp configuration language 可执行的文档 人类和机器可读 学习成本低 测试、共享、重用、自动化 适用于几乎所有云厂商 HCL 最终转换为 JSON 对象,再与云厂商交互 JSON 123456789101112131415161718{ "io_mode": "async", "service...

2021-06-15
容器编排 -- 控制器模型
控制器 kube-controller-manager是一系列控制器的集合,每一种控制器都以独有的方式负责某种编排功能 1234567# cd kubernetes/pkg/controller# ls -d */apis/ cronjob/ endpoint/ history/ nodelifecycle/ replication/ storageversiongc/ util/bootstrap/ daemon/ endpointslice/ job/ podautoscaler/ resourcequota/ testutil/ volume/certificates/ deployment/ endpo...

2022-12-04
Kubernetes - Scheduler
概述 kube-scheduler 负责分配调度 Pod 到集群内的 Node 上 监听 kube-apiserver,查询还未分配 Node 的 Pod,然后根据调度策略为这些 Pod 分配 Node 123456789$ k get po -n kube-system coredns-7f6cbbb7b8-njp2w -oyamlapiVersion: v1kind: Podmetadata: ...spec: ... nodeName: mac-k8s ... 阶段 Stage Desc predicate 过滤不符合条件的 Node priority 优先级排序,选择优先级最高的 Node Predicates 过滤 Strategy Strategy Desc PodFitsHostPorts 检查是否有 Host Ports 冲突 PodFitsPorts 与 PodFitsHostPorts 一致 PodFitsResources 检查 Node 的资源是否充足 HostName 检查候选 Node 与 pod.Spec....
Announcement
Things are always unexpected!










