上一页 1 2 3 4 5 6 7 8 ··· 85 下一页
摘要: 搭建的是 k8s 高可用集群,用了 3 台 master 节点,2 台 master 节点宕机后,仅剩的 1 台无法正常工作。运行 netstat -lntp 命令发现 kube-apiserver 根本没有运行,同时发现 etcd 与 kube-proxy 也没运行。通过 docker ps 命令发现 etcd , kube-apiserver, kube-proxy 这 3 个容器都没有运行,etcd 容器在不停地启动->失败->重启->又失败...... 阅读全文
posted @ 2020-01-07 22:15 dudu 阅读(7349) 评论(0) 推荐(0) 编辑
摘要: 安装 docker :安装所需的软件,添加阿里云安装源的密钥,添加阿里云安装源,安装最新版 docker engine ;安装 k8s :添加阿里云安装源,添加安装源密钥,安装 k8s。apt update && apt install -y kubelet kubeadm kubectl && apt-mark hold kubelet kubeadm kubectl 阅读全文
posted @ 2020-01-07 10:24 dudu 阅读(4092) 评论(0) 推荐(1) 编辑
摘要: 参考官方文档在 ubuntu 18.04 上完成了升级,记录一下升级步骤。升级第一个 master 节点:放空当前节点,升级前检查,正式进行升级操作,升级成功;升级其他 master 节点的 kubeadm,升级 worker 节点的 kubeadm 以及 kubelet 与 kubectl 阅读全文
posted @ 2020-01-05 14:37 dudu 阅读(2022) 评论(0) 推荐(0) 编辑
摘要: 这是昨天晚上阅读园子里的2篇 k8s 博文时产生的想法,在随笔中记录一下。如果我们把 node 当作女方,pod 当作南方,scheduler 当作媒人,从相亲的角度理解这3个概念,不仅豁然开朗,而且很容易记住。`node affinity` 就是女方告诉媒人自己喜欢什么类型的男生,介绍这些类型的男生给她。`taints` 就是女方告诉媒人自己有哪些缺点,不能容忍这些缺点的男生请走开 阅读全文
posted @ 2020-01-04 13:19 dudu 阅读(808) 评论(0) 推荐(0) 编辑
摘要: 开始以为只要安装 prometheus-operator 就行了。安装后发现只有一个 prometheus-operator pod 。这时才发现真正要安装的是 kube-prometheus 。kube-prometheus 中包含了 prometheus 监控所用到的所有组件,当然也包含 prometheus-operator 。安装好 prometheus 之后通过 kubectl port-forward 命令暴露端口,可以通过浏览器分别访问 Prometheus, Grafana, AlertManager 控制台了 阅读全文
posted @ 2020-01-03 20:59 dudu 阅读(9961) 评论(7) 推荐(1) 编辑
摘要: 在 ASP.NET Core 中通过 `Request.Host.Host` 获取主机名(hostname)时,如果主机名中包含非 ASCII 字符(比如 puny code),就会引发下面的异常。改用 `Request.Headers[HeaderNames.Host].ToString()` 可以避开这个问题,但需要注意一个地方,用这个方法获取时,如果 url 中包含端口号(比如 https://localhost:5000),得到的主机名中也会包含端口号 阅读全文
posted @ 2019-11-16 22:06 dudu 阅读(1066) 评论(0) 推荐(1) 编辑
摘要: 不管哪种用户验证方式,最终都是在验证成功后设置 HttpContext.User ,后续处理环节通过 HttpContext.User 获取用户信息。如果能直接修改 HttpContext.User ,就能达到模拟登录的目的,而 ASP.NET Core 的中间件(middleware)天生具备的可以任意修改 HttpContext 的能力,让实现这个想法不费吹灰之力。 阅读全文
posted @ 2019-11-13 15:31 dudu 阅读(982) 评论(0) 推荐(1) 编辑
摘要: 一直不喜欢 Startup 中这两个可读性很比较差的命名 ConfigureServices 与 Configure。ConfigureServices 用于配置依赖注入以在运行时根据依赖关系创建对象,Configure 用于配置中间件(middleware)以构建请求处理流水线。 阅读全文
posted @ 2019-11-09 20:51 dudu 阅读(5247) 评论(5) 推荐(5) 编辑
摘要: 这两天遇到一个应用场景,需要对内网调用的部分 web api 进行安全保护,只允许请求头账户包含指定 key 的客户端进行调用。在网上找到一篇英文博文 ,该文中的代码完美基于 ASP.NET Core 内置的鉴权(Authentication) 与授权(Authorization)机制解决了这个问题,于是站在巨人的肩上自己实现了一遍,在这篇随笔中做个记录。 阅读全文
posted @ 2019-10-19 16:05 dudu 阅读(1996) 评论(3) 推荐(3) 编辑
摘要: Request.Headers 的类型是 IHeaderDictionary 接口,对应的实现类是 HeaderDictionary 。HeaderDictionary 实际就是一个用于 保存 StringValues 的 KeyValuePair 。通过索引器访问时,如果对应的值不存在,会返回 StringValues.Empty ,所以不需要进行 null 引用检查。索引器访问实际就是 TryGetValue + StringValues.Empty 。 阅读全文
posted @ 2019-10-19 09:45 dudu 阅读(8531) 评论(2) 推荐(2) 编辑
摘要: NuGet 默认只支持一个菜一个菜打包,不支持套餐打包。当对一个 csproj 项目进行 nuget 打包时(比如使用 dotnet pack 命令),只会将当前项目 build 出来的 dll 程序集文件打包进 nupkg 文件,而所引用项目的 dll 文件不会被打包进去。要解决这个问题需要在 csproj 文件中添加专门的 msbuild 配置,这篇随笔分享一下刚学到的新姿势。 阅读全文
posted @ 2019-09-29 12:13 dudu 阅读(2442) 评论(5) 推荐(8) 编辑
摘要: System.Text.Json 是 .NET Core 3.0 新引入的高性能 json 解析、序列化、反序列化类库,武功高强,但毕竟初入江湖,炉火还没纯青,使用时需要注意,以下是我们在实现使用中遇到的一下问题。 阅读全文
posted @ 2019-09-27 14:33 dudu 阅读(10692) 评论(17) 推荐(9) 编辑
摘要: 之前我们的数据库服务器使用的是 SQL Server 2008 R2 ,由于从 EF Core 3.0 Preview 6 开始不支持 UseRowNumberForPaging ,只能停留在 EF Core 3.0 Preview 5 ,无法继续升级。后来终于将数据库升级到了 SQL Server 2016 ,赶紧将 EF Core 升级到最新版 3.0 Preview 9 ,结果却发现了 EF Core 3.0 Preview 9 的2个小坑。 阅读全文
posted @ 2019-09-16 11:39 dudu 阅读(1761) 评论(10) 推荐(3) 编辑
摘要: 写代码验证了一下 .NET Core 中序列化对象输出字节数大小,.NET Core 版本是 3.0.100 preview8 013656 ,对象属性使用了 Guid 与 DateTime 类型,胜出的是 Newtonsoft.Json.Bson ,序列化输出的字节数是 。 更新:后来同事用 "M 阅读全文
posted @ 2019-08-20 18:40 dudu 阅读(1348) 评论(1) 推荐(3) 编辑
摘要: 今天在一个 .NET Core 项目中调用一个自己实现的使用 params 可变参数的方法时触发了 null 引用异常,原以为是方法中没有对参数进行 null 值检查引起的,于是加上 check null 代码: 结果却出人意料, null 引用异常继续,仔细看异常 stack 才发现原来 null 阅读全文
posted @ 2019-07-22 22:32 dudu 阅读(866) 评论(4) 推荐(4) 编辑
摘要: 今天在我们的一个项目中遇到一个 asp.net core 模型验证(model validation)的小问题。当模型属性的类型是 bool ,而提交上来的该属性值是 null ,asp.net core 在模型绑定时会使用该属性的默认值(这很好),但是除此之外 asp.net core 做了一个额 阅读全文
posted @ 2019-07-22 12:13 dudu 阅读(1262) 评论(5) 推荐(2) 编辑
摘要: 在使用负载均衡的情况下,通过 context.Connection.RemoteIpAddress 获取到的是负载均衡的 IP 地址,需要通过 X-Forwarded-For 请求头才能获取到客户端的真实 IP 。之前采用的方式是自己直接获取 X-Forwarded-For 请求头。现在改用 asp.net core 内置的 Forwarded Headers Middleware 来实现 阅读全文
posted @ 2019-06-26 12:09 dudu 阅读(2252) 评论(5) 推荐(3) 编辑
摘要: 端午节在家将一个 asp.net 项目向 asp.net core 迁移时遇到了一个问题,用 view component 取代 Html.RenderAction 之后,运行时 view component 找不到视图文件。原先用的是 Html.RenderAction ,视图都放在 Controller 对应的视图路径,对于 AggSiteController ,Html.RenderAction 的视图都放在 /Views/AggSite/ 文件夹中,换成 view component 之后,在 AggSiteController 中运行的 view component 却把 /Views/AggSite/ 置之度外 阅读全文
posted @ 2019-06-11 09:55 dudu 阅读(836) 评论(0) 推荐(4) 编辑
摘要: 今天在将一个 .net framework 项目迁移至 .net core 过程中在迁移到显示友好时间格式(比如“1分钟前”,“1小时前”)代码时,找了找看有没有对应的开源库,结果找到了 Humanizer ,顺手体验了一下,感觉不错,在这篇随笔中记录一下。 阅读全文
posted @ 2019-06-07 22:48 dudu 阅读(1320) 评论(0) 推荐(3) 编辑
摘要: 最近在发布了基于 ASP.NET Core 实现的新版登录页面之后,陆陆续续地接到用户反馈登录时 Antiforgery Token 总是验证失败。今天在 QQ 浏览器中将内核模式设置为“总是使用 IE 内核”重现了问题,通过浏览器的开发者工具查看 cookie 情况,打开登录页时 antiforgery cookie 已发送给了浏览器 阅读全文
posted @ 2019-06-01 15:14 dudu 阅读(2158) 评论(0) 推荐(3) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 85 下一页