云原生专栏后续更新计划

Posted 我是沐风晓月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云原生专栏后续更新计划相关的知识,希望对你有一定的参考价值。

前言

云原生的内容比较多,为了提高更新速度,以及在后面的更新中更有条理一些,我整理了接下来的更新计划,一方面让专栏更系统,另一方面不至于落下某个知识点。

其实很多时候所谓的迷茫,不知道前路如何走,在写文章的过程中,路会越来越清晰,可能这就是写文章的意义所在吧。

要学好云原生,go语言是必学的内容, 不懂go语言,在阅读docker,k8s代码的时候就会遇到困难,而且在编写云原生组件的时候无法实现高效率,高质量的交付。

另一方面,云原生知识涵盖的比较多,除了go语言外,在后面学习到spring cloud的时候时候,又得需要懂Java, 所以想要精通云原生,路漫漫其修远兮。

持续精进,坚持更文,或许这就是生活的意义吧!

二. 云原生的专栏介绍

2.1 专栏目前更新计划

所有专栏在csdn更新的过程中,专栏名称可能会在后面有变化,比如 容器管理和容器编排两个专栏,后期会合并成为容器化篇,有很多技术不太好分类,可能同时属于两三个专栏。

目前已经开通的专栏有:

  1. 云原生概念-原理-方法篇
  2. 容器管理
  3. 容器编排
  4. prometheus专栏(目前已改为付费)

后续上面更新完成后,还会有以下几个专栏:

  • 公有云项目实战篇
  • 微服务篇
  • DevOps篇
  • go语言入门到精通

2.2 专栏细分

在后续更新的专栏中,有的内容比较多,比如微服务篇的分类:

  • 微服务官网

  • 降级限流

  • 服务调用

  • 分布式事务

  • 健康监控

  • 注册中心

  • 配置中心

  • 链路追踪

  • Java诊断工具

  • 消息中间件

  • 分布式协调

  • 定时调度

  • 搜索引擎

以Spring cloud体系为主,后面可能会有调整。 专栏的目标是: 详尽化和系统化,一方面便于学习,另一方面能够帮助到想要学习的小伙伴

其他的专栏细分出来也会很多,后面我以思维导图的方式呈现

2.3 专栏更新与技术变更

在更新过程中可能有的技术会有变化,比如容器化:

  1. docker 目前是主流技术,后期有可能会转Containerd 或 CRI-O 之类的容器,这个要看技术的发展,但肯定会提前更新docker完成之后,就开始更新出现的新技术,即使不被替代,也要未雨绸缪

  2. k8s 目前底层的容器为docker,后续更新完成docker之后,也同样考虑可能会使用其他容器引擎

  3. rancher: 目前用的也比较多,属于 必会的内容了。

所以一旦技术有变更,专栏就需要跟着技术的变更走,在后续的更新中,如果大家有好的建议,欢迎在沐风晓月的博客留言

三. 未来更新核心技术点

这里需要说明下,此处列出的核心技术点,只作为后续写作时候的参考,并不是文章标题,比如docker服务实战,就可能会有:
-docker mysql主从架构实战

  • docker实现nginx负载均衡实战
  • docker实现redis架构实战

等等。

文章标题后面写完之后在添加,而这里列出的只是知识点,一个知识点可能会写几篇甚至十几篇文章,若有遗漏后续在补充。

3.1 docker核心技术

  1. namespace技术以及基于namespace技术的问题排查
  2. cgroup 控制资源限额的方法,查看 cgroup 配置并临时调整 cgroup 配置
  3. 容器文件系统如何高效的运行和管理数据
  4. 容器网络
  5. 容器镜像和镜像仓库
  6. OCI容器镜像统一标准
  7. go语言编写的HTTP服务器打包成容器
  8. 与docker相关的理论
  9. 容器编排
    10 . docker实战部分

3.2 k8s实战

  1. k8s架构-组件-核心资源
  2. kubeadm安装高可用的k8s集群-最新版
  3. K8S集群节点扩容及缩容
  4. 安装和测试K8S网络
  5. Deployment 控制器
  6. POD对象,生命周期管理和服务发现
  7. service控制器
  8. Ingress对象
  9. k8s企业容器化迁移
  10. k8s实战
  11. k8s API定义设计原理及与公有云对接
  12. 学习Operator 模式,通过 Kubebuilder 构建自己的 CRD,以及编写控制器
  13. 借助HELm 完成复杂的应用模板管理
  14. Kubernetes 控制平面组件:etcd及etcd 的灾备方案生产系统中常见问题解析
  15. Kubernetes 控制平面组件:API Server
  16. Kubernetes 控制平面组件:调度器和控制器
  17. k8s源码
  18. 实现基于 Kubernetes 的 CI/CD:基于 Kubernetes、Jekins、Tekton 打造 CI/CD Pipeline
  19. 实现生产化集群的监控:日志收集和分析,事件、指标和告警(Event、Metrics 和 Alert)
  20. 借助 Helm 管理应用发布
  21. 开发 etcd operator
  22. 基于 Istio 的高级流量管理
  23. Kubernetes 集群联邦和 Istio 多集群管理
  24. 基于 Kubernetes 和 Istio 的安全保证

更多内容,后续再优化,会根据写文章的过程进行调整

3.3 prometheus监控

  1. prometheus原理架构相关
  2. Prometheus的实施实战
  3. prometheus监控服务实战
  4. prometheus监控网络实战
  5. prometheus监控硬件实战
  6. prometheus告警实战: 微信,钉钉,自定义告警模板
  7. prometheus图形化结合grafana实战
  8. PromQL基本操作
  9. prometheus监控容器及k8s实战
  10. prometheus自动发现
  11. 企业级pagerduty的使用

prometheus的内容,包括但不限于这些内容,后续根据情况继续增加。

总结

要把云原生的内容全部写完,真的是一个大工程,这里面还要包括云原生的基础入门知识,比如nginx服务,MySQL等,但他们又同时属于架构方向。

一群人会走的更远,这是我来csdn的原因,虽然前路艰难,但我们一起前行!感恩这一路上每个陪伴过我的伙伴。

『 云原生·Docker』Docker存储

系列文章目录

本系列主要分为以下六大部分,正在更新中,尽请期待!

🚩点击关注本专栏


提示:已经更新的或正在更新的文章前面打勾了哈!

文章目录


前言

将数据存储在容器中,一旦容器被删除,数据也会被删除。同时也会使容器变得越来越大,不方便恢复和迁移。

将数据存储到容器之外,这样删除容器也不会丢失数据。一旦容器故障,我们可以重新创建一个容器,将数据挂载到容器里,就可以快速的恢复。

一、数据卷

卷(volume)是docker 容器存储数据的首选方式,卷有以下优势:

  1. 卷可以在多个正在运行的容器之间共享数据。仅当显式删除卷时,才会删除卷。
  2. 你想要将容器数据存储在外部网络存储上或云提供商上,而不是本地时,卷就是最佳选择。
  3. 更容易备份或迁移,当您需要备份、还原数据或将数据从一个 Docker 主机迁移到另一个 Docker 主机时,卷是更好的选择。

接下来我们结合上一篇文章Docker容器数据卷继续完善一下docker的命令吧!

1.列出所有卷

  • 命令:
docker volume ls

2.创建卷

  • 命令:
docker volume create 卷名

3.查询卷详情

  • 命令:
docker volume inspect 卷名

4.删除卷

  • 命令:
docker volume rm 卷名

5.移除无用卷

  • 命令:
docker volume prune

二、存储方式

docker 提供了以下存储选项:

  1. volume
  2. bind mount 绑定挂载
  3. tmpfs 临时挂载

1.volume卷

卷存储在主机文件系统分配一块专有存储区域,由 Docker(在 Linux 上)管理,并且与主机的核心功能隔离。非 Docker 进程不能修改文件系统的这一部分。卷是在 Docker 中持久保存数据的最佳方式。

卷适用于以下类型的用例:

  • 在多个运行中的容器之间共享数据。如果您未明确创建它,则将在第一次将其挂载到容器时创建该卷。当该容器停止或删除时,该卷仍然存在。多个容器可以同时挂载相同的卷(可读写或只读)。仅在显式删除卷时才将它们删除。
  • 不保证Docker主机具有给定的目录或文件结构时。卷可帮助您将Docker主机的配置与容器运行时解耦。
  • 当您要将容器的数据存储在远程主机或云提供商上时,而不是在本地。
  • 当您需要将数据从一个Docker主机备份,还原或迁移到另一个Docker主机时,卷是一个更好的选择。您可以停止使用该卷的容器,然后备份该卷的目录(例如/var/lib/docker/volumes/)。

我们可以使用该命令显式的创建卷dome,或者在容器创建时创建卷,如下:

docker volume create dome

2.bind mount绑定挂载

绑定挂载可以将主机文件系统上目录或文件装载到容器中,但是主机上的非 Docker 进程可以修改它们,同时在容器中也可以更改主机文件系统,包括创建、修改或删除文件或目录,使用不当,可能会带来安全隐患

绑定挂载适用于以下类型的用例:

  • 将配置文件从主机共享给容器。这是Docker为容器提供DNS解析的方式的默认方式,通过将/etc/resolv.conf从主机挂载到每个容器中来。
  • 在Docker主机上的开发环境和容器之间共享源代码或构建工件。例如,您可以将Maven target/目录挂载到容器中,这样每次在Docker主机上构建Maven项目时,容器都可以访问重建的工件。如果您以这种方式使用Docker进行开发,那么您的生产Dockerfile会将生产就绪的工件直接复制到映像中,而不是依赖于绑定挂载。
  • 当需要确保Docker主机的文件或目录结构与绑定挂载容器所需的一致时。

我们通过 -v 选项绑定挂载一个目录/dome/html到容器中,如下:

docker run -dt -v /dome/html:/usr/html/html --name dome dome

3.tmpfs临时挂载

tmpfs挂载仅存储在主机系统的内存中,从不写入主机系统的文件系统。当容器停止时,数据将被删除。

tmpfs临时挂载适用于以下类型的用例:

  • 当您不希望数据在主机上或容器内持久存在时,tmpfs挂载最适合使用。这可能是出于安全原因或为了保护容器的性能,当您的应用程序需要写入大量非持久状态数据时。

我们通过–tmpfs选项挂载一个内存块,如下:

docker run -dt --name dome_tmpfs --tmpfs /etc/running dome

看看本专栏文章有哪些吧!

本系列文章目录:

  • 『 云原生·生之门』
  • 『 云原生·前置知识』
  • 『 云原生·Docker』
  • 『 云原生·Kubernetes』
  • 『 云原生·KubeSphere』
  • 『 云原生·DevOps』

🚩点击关注本专栏

可以看出来本系列文章将会带你从-1到1的学习云原生的,一起加油吧!

总结

当使用 -v 参数的时候,如果是 docker run 宿主机绝对路径:Docker容器内部绝对路径 的方式,就是挂载,会有空挂载的问题;如果是 docker run -v 不以/开头的路径:Docker容器内部绝对路径的方式,就是绑定,Docker 会自动管理,Docker 不会将它当做目录,而是当做卷。

以上是关于云原生专栏后续更新计划的主要内容,如果未能解决你的问题,请参考以下文章

第四个专栏,Kubernetes云原生实战,它来了~

“云原生游戏开发者招募计划”—拥抱云游戏蓝海

『 云原生·Docker』Docker存储

『 云原生·Docker』Docker中部署Nginx

云原生DevOps:DevOps介绍及Code工具使用

『 云原生·Docker』Docker-compose 容器编排