文章目录 | .NET Core on K8s学习之旅 (更新至20200618)

.NET Core on K8s学习之旅


更新记录:

-- 20200511 增加Ingress & Nginx Ingress介绍

-- 20200515 增加Ocelot API网关集成示例介绍

-- 20200525 增加Ingress实现灰度发布示例介绍

1关于这个系列文章

自从2018年底离开工作了3年的M公司加入X公司之后,开始了ASP.NET Core的实践,包括微服务架构与容器化等等。我们的实践是渐进的,当我们的微服务数量到了一定值时,发现运维工作量已将增加了很多,因此容器编排引擎的需求也随之产生(虽然我们一直都知道K8s的必要性)。同时,在张队发的《.NET云原生采用情况调查》中已经表明,容器编排和自动化领域Kubernetes已经占据了主体地位,学习Kubernetes刻不容缓!

所以,我将K8s的学习放到了学习列表中,并总结了一些学习笔记和实践总结的文章并汇总在这里,希望对各位童鞋有那么一点点帮助!

2Docker基础应用

        

学习K8s之前需要了解一点Docker基础,如果没有Docker基础请先补补课:

① Docker基础、安装与运行.NET Core应用

② Docker常用流行镜像仓库的搭建

③ Docker资源限制学习与验证

④ Docker数据卷学习与应用

⑤ Dockerfile详解

⑥ Docker容器监控工具与方案:

 ⑴ Docker自带监控子命令 & 开源监控工具Weave Scope

 ⑵ Google开发的容器监控工具cAdvisor

 ⑶ 生产级强大应用监控方案Prometheus

⑦ Docker容器日志工具与方案:

 ⑴ Docker logs & logging driver

 ⑵ 开源日志管理方案ELK/EFK

3K8s快速初探

  

如果你想在Windows开发机上快速体验一把K8s,那么可以借助Docker for Windows来快速体验一下:

① ASP.NET Core on K8s学习初探:单节点环境搭建

② ASP.NET Core on K8s学习初探:基本概念快速一览

③ ASP.NET Core on K8s学习初探:部署WebAPI到K8s

如果你嫌在Linux上搭建环境麻烦,那么可以借助K8s在线实验室玩一下快速的交互实验体验一下:

● Hello Kubernetes - 快速交互实验10分钟把玩手册

4K8s持续学习

  

如果想要持续地学习K8s,必须在Linux下搭建一个K8s集群,尝试学习和实践各个核心组件:

⑴ ASP.NET Core on K8s学习之旅(1)K8S基础知识与集群搭建

⑵ ASP.NET Core on K8s学习之旅(2)部署过程解析与部署Dashboard

⑶ ASP.NET Core on K8s学习之旅(3-1)Deployment

⑷ ASP.NET Core on K8s学习之旅(3-2)DaemonSet与Job

⑸ ASP.NET Core on K8s学习之旅(4)你必须知道的Service

⑹ ASP.NET Core on K8s学习之旅(5)Rolling Update

⑺ ASP.NET Core on K8s学习之旅(6)Health Check

⑻ ASP.NET Core on K8s学习之旅(7)Dashboard知多少

⑼ ASP.NET Core on K8s学习之旅(8)数据管理

⑽ ASP.NET Core on K8s学习之旅(9)Secret & Configmap

⑾ ASP.NET Core on K8s学习之旅(10-1)K8s包管理器Helm

⑿ ASP.NET Core on K8s学习之旅(10-2)K8s包管理器Helm

⒀ ASP.NET Core on K8s学习之旅(11)K8s网络知多少

⒁ ASP.NET Core on K8s学习之旅(12)Ingress

⒂ ASP.NET Core on K8s学习之旅(13)Ocelot API网关接入

⒃ ASP.NET Core on K8s学习之旅(14)Ingress灰度发布

5更多分享计划中

使用阿里云K8s服务搭建云上K8s集群并部署ASP.NET Core微服务API应用(老实说,中小团队想要在生产应用K8s,还是推荐使用云服务,把Ops工作交给云厂商就别自己趟坑了!)

如何借助K8s Configmap实现应用的配置动态更新?

使用Jenkins + K8s + Harbor实现持续集成/部署的快速实践又是什么体验?

......

Ref参考资料

① CloudMan,《每天5分钟玩转Docker容器技术》、《每天5分钟玩转Kubernetes》

② 杜宽,《再也不踩坑的Kubernetes实战指南》

③ 李振良,《Kubernetes入门与进阶》

④ 马哥(马永亮),《Kubernetes快速入门》

⑤ Jesse(刘腾飞),《ASP.NET Core on K8S快速入门》

⑥ 阿里云开发者社区,《CNCF 云原生技术公开课》(免费推荐指数5星

⑦ 极客时间 杨波,《Sprint Boot与Kubernetes云原生应用开发实践》(虽然是Java系,但是仍然值得订阅

往期精彩回顾

.NET Core 微服务学习之旅系列文章目录

基于Jenkins的开发测试全流程持续集成实践

基于Jenkins的ASP.NET Core持续集成实践

点个“在看”/转发朋友圈 就是对我最大的支持

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/309168.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Blog.Core重要升级】:封装服务扩展层

昨天有群里小伙伴咨询了一个问题:关于如何在Blog.Core项目中,实现多资源终端的问题,比如这样:一个AdminMvc的管理后台(MVC项目),一个WebApi项目,一个ConsoleApp的控制台项目&#xf…

如何激发团队潜能?

每个技术人员最终可能都会走上管理岗位,从最初的开发 Leader、到部门负责人、甚至到 CTO,这每一个角色的转变,都需要付出巨大的努力去进行思维的转变。最近读的《授权》这本书可以让我们更好地胜任管理这个岗位。本书的作者马凯特是一名海军军官&#xf…

快速打造属于你的接口自动化测试框架

1 接口测试接口测试是对系统或组件之间的接口进行测试,主要是校验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系。接口自动化相对于UI自动化来说,属于更底层的测试,这样带来的好处就是测试收益更大,…

Java Number Math 类方法

Java Math 类 Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。 Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。 public class Test { public static void main (String []args…

lin-cms-dotnetcore功能模块的设计

先来回答以下问题。1.什么是cms?Content Management System,内容管理系统。2.dotnetcore是什么?.NET Core,是由Microsoft开发,目前在.NET Foundation(一个非营利的开源组织)下进行管理,采用宽松的MIT协议&a…

C++二维数组作为函数参数

#include <iostream> #include <Windows.h>//版本一 省略函数 //二维数组省略一个高维函数 但低维位函数必须定义 void printf1(int a1[][3]){for(int i0; i<3; i){for(int j0; j<3; j){printf("%d\t", a1[i][j]);}printf("\n");} }//…

研发协同平台数据库死锁处理及改进

源宝导读&#xff1a;数据库死锁是高并发复杂系统都要面临课题&#xff0c;处理死锁问题没有一招制敌的标准方法&#xff0c;需要具体问题具体分析。本文将基于研发协同平台遇到的死锁案例&#xff0c;介绍从监控、分析到处理的完整过程和经验总结。一、背景研发协同平台使用的…

Java substring() 方法

substring() 方法返回字符串的子字符串。 语法 public String substring(int beginIndex)或public String substring(int beginIndex, int endIndex)参数 beginIndex – 起始索引&#xff08;包括&#xff09;, 索引从 0 开始。 endIndex – 结束索引&#xff08;不包括&…

简单说说async/await

小明用async/await写了几年的异步方法&#xff0c;但总没有完全理解里面的机制&#xff0c;他决定去请教邻居小花。小花听了小明的描述后说&#xff1a;首先你要明白异步的根本是什么&#xff1f;大白话解释异步就是&#xff1a;拉一个人&#xff08;线程&#xff09;帮着做一些…

Java设计链表(不带头结点的单链表)

设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性&#xff1a;val 和 next。val 是当前节点的值&#xff0c;next 是指向下一个节点的指针/引用。如果要使用双向链表&#xff0c;则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所…

Newtonsoft 六个超简单又实用的特性,值得一试 【下篇】

一&#xff1a;讲故事上一篇介绍的 6 个特性从园子里的反馈来看效果不错&#xff0c;那这一篇就再带来 6 个特性同大家一起欣赏。二&#xff1a;特性分析1. 像弱类型语言一样解析 json大家都知道弱类型的语言有很多&#xff0c;如: nodejs&#xff0c;python&#xff0c;php&am…

C++实现双栈结构(一个顺序表中使用两个栈)

因为平常栈中push的数据不会太多&#xff0c;为了节约空间&#xff0c;所以可以在一个顺序表中使用两个栈 结构图: 在这里我会留一个空间用来判断栈是否满&#xff01; #include <iostream> using namespace std; typedef int ElemType;class DoubleStack { private:El…

Redis凭啥这么快?只能做缓存?架构师道出了真相(颠覆你的认知)

Redis到底有多快Redis采用的是基于内存的采用的是单进程单线程模型的 KV 数据库&#xff0c;由C语言编写&#xff0c;官方提供的数据是可以达到100000的QPS&#xff08;每秒内查询次数&#xff09;。这个数据不比采用单进程多线程的同样基于内存的 KV 数据库 Memcached 差&…

Java面向对象编程(基础部分)

面向对象编程(基础部分) 类与对象 01&#xff1a; public class ObjectWorkDemo {public static void main(String[] args){Cat cat1 new Cat();cat1.name "Tom";cat1.age 3;cat1.color "white";Cat cat2 new Cat();cat2.name "xiaohua"…

多数组实现链表

指针和对象的实现 对象的多数组表示 #include <iostream>using namespace std; typedef int T; class multiple_array_list { private:int capacity;int **key_array;int *next_array;int *pre_array;int count;int head;int tail; public:multiple_array_list(int cap…

Blazor带我重玩前端(一)

写在前面曾经我和前端朋友聊天的时候&#xff0c;我说我希望有一天可以用C#写前端&#xff0c;不过当时更多的是美好的想象&#xff0c;这一切正变得真实……什么是Blazor我们知道浏览器可以正确解释并执行JavaScript代码&#xff0c;那么浏览器是如何执行C#代码的呢&#xff1…

Java面向对象编程(中级)

面向对象编程(中级) 包 访问修饰符 封装 01: public class Encapsulation01 {public static void main(String[] args){Person person new Person();person.name "Tom";person.setAge(30);person.setSalary(30000);} }class Person {public String name;private…