.NET开发,如果不会docker+k8s...

Posted dotNET全栈开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET开发,如果不会docker+k8s...相关的知识,希望对你有一定的参考价值。


docker的前世今生



2010年,几个年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司。这家公司主要提供基于PaaS的云计算技术服务。具体来说,是和LXC有关的容器技术。后来,dotCloud公司将自己的容器技术进行了简化和标准化,并命名为——Docker

2013年3月,dotCloud公司的创始人之一,Docker之父,28岁的Solomon Hykes正式决定,将Docker项目开源。


.NET开发,如果不会docker+k8s...

不开则已,一开惊人。此时Docker,已经成为行业里人气最火爆的开源技术,没有之一。甚至像Google、微软、Amazon、VMware这样的巨头,都对它青睐有加,表示将全力支持。Docker和容器技术为什么会这么火爆?说白了,就是因为它“轻”。


docker的优点



Docker可以解决虚拟机能够解决的问题,同时也能够解决虚拟机由于资源要求过高而无法解决的问题。Docker的优点包括:

  • 标准化应用发布,docker容器包含了运行环境和可执行程序,可以跨平台和主机使用;

  • 节约时间,快速部署和启动,VM启动一般是分钟级,docker容器启动是秒级;

  • 方便构建基于SOA架构或微服务架构的系统,通过服务编排,更好的松耦合;

  • 节约成本,以前一个虚拟机至少需要几个G的磁盘空间,docker容器可以减少到MB级;

  • 方便持续集成,通过与代码进行关联使持续集成非常方便;

  • 可以作为集群系统的轻量主机或节点,在IaaS平台上,已经出现了CaaS,通过容器替代原来的主机。


火起来的K8S



就在Docker容器技术被炒得热火朝天之时,大家发现,如果想要将Docker应用于具体的业务实现,是存在困难的——编排、管理和调度等各个方面,都不容易。于是,人们迫切需要一套管理系统,对Docker及容器进行更高级更灵活的管理。就在这个时候,K8S出现了。K8S,就是基于容器的集群管理平台,它的全称,是kubernetes。


.NET开发,如果不会docker+k8s...


K8S一个平台搞定所有使用 

K8S部署任何应用都是小菜一碟。只要应用可以打包进容器,K8S就一定能启动它。不管什么语言什么框架写的应用,K8S都可以在任何环境中安全的启动它,物 理服务器、虚拟机、云环境。


.NET开发,如果不会docker+k8s...


云环境无缝迁移

如果你有换云环境的需求,例如从 GCP 到 AWS,使用 Kubernetes 的话,你就不用有任何担心,Kubernetes 完全兼容各种云服务提供商。

.NET开发,如果不会docker+k8s...

高效的利用资源

看下图,左边,是4个虚拟机,黄色和蓝色部分是运行的应用,白色部分是未使用的内存和处理器资源。右边,同样的应用打包运行在容器中。

.NET开发,如果不会docker+k8s...

K8S如果发现有节点工作不饱和,便会重新分配 pod,帮助我们节省开销,高效的利用内存、处理器等资源。如果一个节点宕机了,K8S会自动重新创建之前运行在此节点上的 pod,在其他节点上运行。


开箱即用的自动缩放能力

网络、负载均衡、复制等特性,对于 Kubernetes 都是开箱即用的。pod 是无状态运行的,任何时候有 pod 宕了,立马会有其他 pod 接替它的工作,用户完全感觉不到。如果用户量突然暴增,现有的 pod 规模不足了,那么会自动创建出一批新的 pod,以适应当前的需求。反之亦然,当负载降下来的时候,K8S也会自动缩减 pod 的数量。

.NET开发,如果不会docker+k8s...

使 CI/CD 更加简单

你不必精通于 Chef 和 Ansible 这类工具,只需要对 CI 服务写个简单的脚本然后运行它,就会使用你的代码创建一个新的 pod,并部署到 Kubernetes 集群里面。应用打包在容器中使其可以安全的运行在任何地方,例如你的 PC、一个云服务器,使得测试极其简单。

.NET开发,如果不会docker+k8s...


docker三天集训



作为一名开发人员,特别是立志成为架构师的开发人员,熟悉掌握Docker+K8S已经是工作以及面试必备技能,为此,给大家推荐一门在线直播课程,由架构师Tony老师亲授,课程为期3天,5月25日~27日晚上八点至九点半直播教学,本号粉丝,一律免费学习。

扫码进班级群
如扫码失败,请加微信号:ruanmounetzry


Day1:Docker核心

1、docker核心概念介绍

2、docker容器镜像

3、docker容器编排

4、docker微服务项目实战


Day2:Docker集群

1、docker-集群介绍

2、docker-swarm集群应用

3、docker-集群微服务项目实战

4、docker-集群内缺陷


Day3:K8S介绍及应用

1、k8s核心概念介绍

2、k8s集群搭建

3、k8s微服务项目实战

4、docker和k8s对比


附赠学习礼包



福利1:送价值399元.NET Core视频合集
福利2:送价值299元微服务视频合集
福利3:送价值499元数据结构算法视频合集
福利4:赠送价值199元Redis视频合集

扫码获取以上福利

仅限前199名


扫码进班级群
如扫码失败,请加微信号:ruanmounetzry

以上是关于.NET开发,如果不会docker+k8s...的主要内容,如果未能解决你的问题,请参考以下文章

使用 Docker 在 Linux 上托管 ASP.NET Core 应用程序

不会docker的开发

.NET Core容器化开发系列——Docker里面跑个.NET Core

Docker - CentOS7中安装Docker - (视频教程)

.NET Core跨平台部署于Docker(Centos)- 视频教程

CentOS7的docker中运行.Net 5 API项目