7.1 Kubernetes架构

  K8s的核心组件:

    • etcd: 协同存储,负责保存整个集群的状态。
    • API:资源操作的唯一入口。
    • controller manager: 维护集群的状态,执行故障检测、自动扩展、滚动更新。
    • Scheduler:负责资源调度,按照预定的调度策略将Pod调度到相应的机器上。
    • Kubelet: 作为工作节点负责维护容器的生命周期。
    • 容器运行时: 镜像管理,实现Pod和容器的真正运行。
    • Proxy: 负责提供集群内部的服务发现和负载均衡。

        推荐使用插件:

      CoreDNS;DNS 服务。

      Ingress Controller: 外网入口

      Prometheus: 资源监控

      Dashboard: 提供GUI

      Federation: 提供跨可用区的集群 

7.2 分层设计理念及架构模型

  不是命令式设计模式,而是声明式设计模式。

7.3 设计哲学

7.4 Kubernetes中的原语

  7.4.1 Kubernetes中的对象

      在k8s系统中,对象是持久化的条目。K8s中对象描述有如下信息:

  • 哪些容器化应用在运行,运行在哪个node上。
  • 与应用表现相关的策略,比如重启、升级、容错策略。

 7.4.2 对象的期望状态与实际状态

  Kubernetes会保证期望状态和实际状态一致。 比如副本的数量。

 7.4.3 描述Kubernetes对象

  Pod是K8s的基本调度单位。

    7.4.4 服务发现与负载均衡

  K8s中的服务发现和负载均衡大致可以分为以下几种,

  Service: 提供集群内部的负载均衡

  Ingress:   要自定义负载均衡器,让外部客户访问集群。

  Custom Load Balancer: 自定义负载均衡器替代kube-proxy.

 7.4.5 安全性与权限管理
  
K8s中的隔离:

    网络隔离:

    资源隔离:Pod, Namespace

    身份隔离:RBAC

资源隔离层次:

    Container:

    Pod:

Sandbox:

    Node

    Cluster:

    7.4.6 Sidecar设计模式

    代理进程作为sidecar,与应用程序运行在同一个Pod。其在service mesh中发扬光大。

7.5 应用Kubernetes

  如何将遗留的应用迁到K8s上:

   1. 将原来的应用拆解为服务。

   2.定义服务接口通信方式

      3. 编写启动脚本作为容器进程的入口

   4.准备应用配置文件

   5.应用容器化并制作镜像

   6.准备K8s用的YAML文件

   7.如果有外置的配置文件,需要ConfigMap或Secret存储。

7.6 Kubernetes与云原生生态

  K8s缺乏微服务自理能力; 也未提供CI/CD流程;

  7.6.1 下一代云计算标准

  7.6.2 当前存在的问题

    学习成本高

    对微服务治理不足。

    需要写大量YAML文件。

  7.6.3 未来趋势

    引入Service Mesh

    Serverless

    简化应用部署与运维:监控和日志收集

第七章 云原生生态的基石 Kubernetes的更多相关文章

  1. [转帖]Kubernetes v1.17 版本解读 | 云原生生态周报 Vol. 31

    Kubernetes v1.17 版本解读 | 云原生生态周报 Vol. 31 https://www.kubernetes.org.cn/6252.html 2019-12-13 11:59 ali ...

  2. 云原生生态周报 Vol. 3 | Java 8 ❤️ Docker

    摘要: Docker Hub遭入侵,19万账号被泄露:Java 8 终于开始提供良好的容器支持:Snyk 年度安全报告出炉,容器安全问题形势空前严峻. 业界要闻 Docker Hub遭入侵,19万账号 ...

  3. 云原生生态周报 Vol. 5 | etcd性能知多少

    业界要闻 1 Azure Red Hat OpenShift已经GA.在刚刚结束的Red Hat Summit 2019上,Azure Red Hat OpenShift正式宣布GA,这是一个微软和红 ...

  4. 云原生生态周报 Vol. 6 | KubeCon EU 特刊

    5 月 26日,2019 年第一个 KubeCon + CloudNativeCon 在巴塞罗那成功闭幕.本届 KubeCon 共吸引了超过 7700 名与会者,相较去年哥本哈根大会的 4300 余名 ...

  5. 如何将云原生工作负载映射到 Kubernetes 中的控制器

    作者:Janakiram MSV 译者:殷龙飞 原文地址:https://thenewstack.io/how-to-map-cloud-native-workloads-to-kubernetes- ...

  6. 云原生生态周报 Vol. 17 | Helm 3 发布首个 beta 版本

    本周作者 | 墨封.衷源.元毅.有济.心水 业界要闻 1. Helm 3 首个 beta 版本 v3.0.0-beta.1 发布 该版本的重点是完成最后的修改和重构,以及移植其他 Helm 2 特性. ...

  7. Knative 暂时不会捐给任何基金会 | 云原生生态周报 Vol. 22

    作者 | 新胜.心贵.进超.元毅.衷源 业界要闻 谷歌:不会向任何基金会捐赠 Knative 自 Knative 项目开始以来,一直存在关于是否将 Knative 捐赠给基金会(例如 CNCF)的疑问 ...

  8. 2019 年容器生态统计报告发布 | 云原生生态周报 Vol. 26

    作者 | 酒祝.天元.元毅.心水.衷源 业界要闻 1.2019 年容器生态统计报告发布  据报告显示,Kubernetes 占据 77% 的容器编排产品份额,Docker 占据 79% 的容器引擎产品 ...

  9. 云原生生态周报 Vol.10 | 数据库能否运行在 K8s 当中?

    业界要闻  IBM 以总价 340 亿美元完成里程碑意义的红帽收购:这是这家拥有 107 年历史的公司史上规模最大的一笔收购,该收购金额在整个科技行业的并购史上也能排到前三.在当天公布的声明中,IBM ...

随机推荐

  1. 2017.10.5 国庆清北 D5T1 拼不出的数

    题目描述 3 个元素的集合{5,1,2}的所有子集的和分别是0,1,2,3,5,6,7,8.发现最小的不能由该集合子集拼出的数字是4. 现在给你一个n个元素的集合,问你最小的不能由该集合子集拼出的数字 ...

  2. 《挑战30天C++入门极限》新手入门:C/C++中数组和指针类型的关系

        新手入门:C/C++中数组和指针类型的关系 对于数组和多维数组的内容这里就不再讨论了,前面的教程有过说明,这里主要讲述的数组和指针类型的关系,通过对他们之间关系的了解可以更加深入的掌握数组和指 ...

  3. 在Maven项目中使用lombok

    事前准备:如果是eclipse的话,需要在官网下载jar文件,放到eclipse根目录下,eclipse.ini的最后追加 -Xbootclasspath/a:lombok.jar -javaagen ...

  4. Multi-Temporal SAR Data Large-Scale Crop Mapping Based on U-Net Model(利用U-net对多时相SAR影像获得作物图)

    对哨兵1号的多时相双极化SAR数据进行预处理,得到18个日期的VV和VH共36景影像,通过ANOVA和JM距离分析,选其中ANOVA得到的F值最高的6景影像.真值用LC8数据和地面调查,目视解译得到标 ...

  5. Gradle: 一个诡异的问题(ERROR: Failed to parse XML AndroidManifest.xml ParseError at [row,col]:[5,5] Message: expected start or end tag)

    今天同事说他下了一个老版本的AS项目死活编不过,我心想不就是一个项目么,编不过要么就是代码有问题,要么就是依赖库不完整这能有什么问题,于是自己在自己电脑试了下,结果自己也中招了: 乍一看这个错误,说是 ...

  6. AI学习网址记录

    https://ai.yanxishe.com/ https://ai.yanxishe.com/page/blogDetail/14365 GAN网络 对抗式生成网络-图像超分辨及图像修复 完全可见 ...

  7. 一起入门Python2之python的安装及初识

    鉴于论坛需要持续更新文章才能更好的保证论坛的访问量和质量,以及论坛的发展.承蒙前辈的信任和支持,我就教大家python第二课,教的不好请多担待和指正. 我们先讲python的安装方法: 方法链接:ht ...

  8. Python之Django之views中视图代码重复查询的优化

    Django框架中views视图中如果多个函数都有同样的查询语句,例如: allcategory = Category.objects.all() remen = Article.objects.fi ...

  9. 手动卸载wine-stable卸载

    装了wine发现运行TIM全都乱码,于是手动卸载wine: 删除文件:(参考https://blog.csdn.net/taizhoufox/article/details/5496568) ~/.w ...

  10. postman内置脚本说明

    1. 清除一个全局变量 Clear a global variable 对应脚本: postman.clearGlobalVariable("variable_key"); 参数: ...