云原生 -- 概述
Created|Cloud NativeKubernetesAlibaba
|Word Count:213|Reading Time:1mins
定义
最佳路径
云原生是一条使用户能低心智负担的、敏捷的、以可扩展、可复制的方式,最大化地利用云的能力,发挥云的价值的最佳路径
愿景
软件从诞生就生在云上、长在云上,全新的软件开发、发布和运维模式
技术范畴
理论基础
| 理论基础 | 目前实现 |
|---|---|
| 不可变基础设施 | 容器镜像 |
| 云应用编排理论 | 容器设计模式 |
意义
| Key | Value |
|---|---|
| 基础设施一致性和可靠性 | 容器镜像 自包含 可漂移 |
| 简单可预测的部署与运维 | 自描述、自运维 流程自动化 容易水平扩展 可快速复制的管控系统和支撑组件 |
关键技术点
参考资料
Author: zhongmingmao
Copyright Notice: All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Related Articles

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 实现机制解决的...

2021-07-11
应用编排与管理 -- Deployment
作用每个 Deployment 管理一组相同的应用 Pod(相同的一个副本) 实践YAML 文件nginx-deployment123456789101112131415161718192021apiVersion: apps/v1kind: Deploymentmetadata: name: nginx-deployment labels: app: nginxspec: replicas: 3 # 期望的 Pod 数量 selector: # Pod Selector matchLabels: app: nginx template: # Pod Template metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80 查看 Deployment123456789$ kubectl g...

2021-07-12
应用编排与管理 -- DaemonSet
作用 保证集群内每一个或者一些节点都运行一组相同的 Pod 跟踪集群节点状态,保证新加入的节点自动创建对应的 Pod 跟踪集群节点状态,保证移除的节点删除对应的 Pod 跟踪 Pod 状态,保证每个节点 Pod 处于运行状态 实践YAML 文件ds.yaml12345678910111213141516171819apiVersion: apps/v1kind: DaemonSetmetadata: name: fluentd-elasticsearch namespace: kube-system labels: k8s-app: fluentd-loggingspec: selector: matchLabels: name: fluentd-elasticsearch template: # Pod Template metadata: labels: name: fluentd-elasticsearch spec: containers: - name: fluentd-elasticsearch...

2021-07-07
Kubernetes -- 容器
容器与镜像容器容器是一个资源视图隔离、资源可限制、独立文件系统的进程集合 镜像容器镜像:运行容器所需要的所有文件集合 构建镜像 运行容器 容器生命周期 Moby 容器引擎架构containerd-shim: 插件化、动态接管 容器 vs VM 参考资料 CNCF × Alibaba 云原生技术公开课

2021-07-12
应用编排与管理 -- Job + CronJob
Job作用 创建一个或多个 Pod 来确保指定数量的 Pod 可以成功地运行终止 跟踪 Pod 状态,根据配置及时重试失败的 Pod 确定依赖关系,保证上一个任务运行完毕后再运行下一个任务 控制任务并行度,并根据配置确保 Pod 队列大小 实践YAML 文件job.yaml123456789101112131415161718apiVersion: batch/v1kind: Jobmetadata: name: pispec: backoffLimit: 4 # 重试次数 template: # Pod Selector spec: containers: - name: pi image: perl ports: null command: - perl - '-Mbignum=bpi' - '-wle' - print bpi(2000) restartP...

2021-07-11
应用编排与管理 -- 核心原理
资源元信息Kubernetes资源对象 Spec(specification):期望的状态 Status:观测到的状态 Metadata:元数据 Labels:识别资源 Annotations:描述资源 OwnerReference:描述多个资源之间的相互关系 Labels 标识型的 KV 元数据 标签名包含域名前缀:用来描述打标签的系统和工具 作用 用于筛选资源 唯一的组合资源的方法 可以使用 Selector 来查询(类SQL) Selector Pod Tie Env pod1 front dev pod2 back prod pod3 front test pod4 back gray 相等型 可以包含多个相等条件,多个相等条件之间是逻辑与的关系,如Tie=front, Env=dev命中 pod1 集合型 Env in (test, gray):命中 pod3 和 pod4 Tie notin (front, back):无命中 其他 release:存在 release 标签 !release:不存在 release 标签 相等型和...
Announcement
Things are always unexpected!








