云原生专栏后续更新计划
Posted 我是沐风晓月
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云原生专栏后续更新计划相关的知识,希望对你有一定的参考价值。
前言
云原生的内容比较多,为了提高更新速度,以及在后面的更新中更有条理一些,我整理了接下来的更新计划,一方面让专栏更系统,另一方面不至于落下某个知识点。
其实很多时候所谓的迷茫,不知道前路如何走,在写文章的过程中,路会越来越清晰,可能这就是写文章的意义所在吧。
要学好云原生,go语言是必学的内容, 不懂go语言,在阅读docker,k8s代码的时候就会遇到困难,而且在编写云原生组件的时候无法实现高效率,高质量的交付。
另一方面,云原生知识涵盖的比较多,除了go语言外,在后面学习到spring cloud的时候时候,又得需要懂Java, 所以想要精通云原生,路漫漫其修远兮。
持续精进,坚持更文,或许这就是生活的意义吧!
二. 云原生的专栏介绍
2.1 专栏目前更新计划
所有专栏在csdn更新的过程中,专栏名称可能会在后面有变化,比如 容器管理和容器编排两个专栏,后期会合并成为容器化篇,有很多技术不太好分类,可能同时属于两三个专栏。
目前已经开通的专栏有:
- 云原生概念-原理-方法篇
- 容器管理
- 容器编排
- prometheus专栏(目前已改为付费)
后续上面更新完成后,还会有以下几个专栏:
- 公有云项目实战篇
- 微服务篇
- DevOps篇
- go语言入门到精通
2.2 专栏细分
在后续更新的专栏中,有的内容比较多,比如微服务篇的分类:
-
微服务官网
-
降级限流
-
服务调用
-
分布式事务
-
健康监控
-
注册中心
-
配置中心
-
链路追踪
-
Java诊断工具
-
消息中间件
-
分布式协调
-
定时调度
-
搜索引擎
以Spring cloud体系为主,后面可能会有调整。 专栏的目标是: 详尽化和系统化,一方面便于学习,另一方面能够帮助到想要学习的小伙伴
其他的专栏细分出来也会很多,后面我以思维导图的方式呈现
2.3 专栏更新与技术变更
在更新过程中可能有的技术会有变化,比如容器化:
-
docker 目前是主流技术,后期有可能会转Containerd 或 CRI-O 之类的容器,这个要看技术的发展,但肯定会提前更新docker完成之后,就开始更新出现的新技术,即使不被替代,也要未雨绸缪
-
k8s 目前底层的容器为docker,后续更新完成docker之后,也同样考虑可能会使用其他容器引擎
-
rancher: 目前用的也比较多,属于 必会的内容了。
所以一旦技术有变更,专栏就需要跟着技术的变更走,在后续的更新中,如果大家有好的建议,欢迎在沐风晓月的博客留言
三. 未来更新核心技术点
这里需要说明下,此处列出的核心技术点,只作为后续写作时候的参考,并不是文章标题,比如docker服务实战,就可能会有:
-docker mysql主从架构实战
- docker实现nginx负载均衡实战
- docker实现redis架构实战
等等。
文章标题后面写完之后在添加,而这里列出的只是知识点,一个知识点可能会写几篇甚至十几篇文章,若有遗漏后续在补充。
3.1 docker核心技术
- namespace技术以及基于namespace技术的问题排查
- cgroup 控制资源限额的方法,查看 cgroup 配置并临时调整 cgroup 配置
- 容器文件系统如何高效的运行和管理数据
- 容器网络
- 容器镜像和镜像仓库
- OCI容器镜像统一标准
- go语言编写的HTTP服务器打包成容器
- 与docker相关的理论
- 容器编排
10 . docker实战部分
3.2 k8s实战
- k8s架构-组件-核心资源
- kubeadm安装高可用的k8s集群-最新版
- K8S集群节点扩容及缩容
- 安装和测试K8S网络
- Deployment 控制器
- POD对象,生命周期管理和服务发现
- service控制器
- Ingress对象
- k8s企业容器化迁移
- k8s实战
- k8s API定义设计原理及与公有云对接
- 学习Operator 模式,通过 Kubebuilder 构建自己的 CRD,以及编写控制器
- 借助HELm 完成复杂的应用模板管理
- Kubernetes 控制平面组件:etcd及etcd 的灾备方案生产系统中常见问题解析
- Kubernetes 控制平面组件:API Server
- Kubernetes 控制平面组件:调度器和控制器
- k8s源码
- 实现基于 Kubernetes 的 CI/CD:基于 Kubernetes、Jekins、Tekton 打造 CI/CD Pipeline
- 实现生产化集群的监控:日志收集和分析,事件、指标和告警(Event、Metrics 和 Alert)
- 借助 Helm 管理应用发布
- 开发 etcd operator
- 基于 Istio 的高级流量管理
- Kubernetes 集群联邦和 Istio 多集群管理
- 基于 Kubernetes 和 Istio 的安全保证
更多内容,后续再优化,会根据写文章的过程进行调整
3.3 prometheus监控
- prometheus原理架构相关
- Prometheus的实施实战
- prometheus监控服务实战
- prometheus监控网络实战
- prometheus监控硬件实战
- prometheus告警实战: 微信,钉钉,自定义告警模板
- prometheus图形化结合grafana实战
- PromQL基本操作
- prometheus监控容器及k8s实战
- prometheus自动发现
- 企业级pagerduty的使用
prometheus的内容,包括但不限于这些内容,后续根据情况继续增加。
总结
要把云原生的内容全部写完,真的是一个大工程,这里面还要包括云原生的基础入门知识,比如nginx服务,MySQL等,但他们又同时属于架构方向。
一群人会走的更远,这是我来csdn的原因,虽然前路艰难,但我们一起前行!感恩这一路上每个陪伴过我的伙伴。
『 云原生·Docker』Docker存储
系列文章目录
本系列主要分为以下六大部分,正在更新中,尽请期待!
- 『 云原生·生之门』
- 『 云原生·前置知识』
- 『 云原生·Docker』
- 『 云原生·Kubernetes』
- 『 云原生·KubeSphere』
- 『 云原生·DevOps』
提示:已经更新的或正在更新的文章前面打勾了哈!
文章目录
前言
将数据存储在容器中,一旦容器被删除,数据也会被删除。同时也会使容器变得越来越大,不方便恢复和迁移。
将数据存储到容器之外,这样删除容器也不会丢失数据。一旦容器故障,我们可以重新创建一个容器,将数据挂载到容器里,就可以快速的恢复。
一、数据卷
卷(volume
)是docker 容器存储数据的首选方式,卷有以下优势:
- 卷可以在多个正在运行的容器之间共享数据。仅当显式删除卷时,才会删除卷。
- 你想要将容器数据存储在外部网络存储上或云提供商上,而不是本地时,卷就是最佳选择。
- 卷更容易备份或迁移,当您需要备份、还原数据或将数据从一个 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 提供了以下存储选项:
volume
卷bind mount
绑定挂载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 不会将它当做目录,而是当做卷。
以上是关于云原生专栏后续更新计划的主要内容,如果未能解决你的问题,请参考以下文章