摘要: 分享一下我们在 ASP.NET Core 单页应用(前端用的是 Angular)中使用的配置代码:`UseProxyToSpaDevelopmentServer` 用于 Development 环境,需要自己另外启动前端开发服务器,比如 ng serve 命令;* `UseSpaStaticFiles` 用于配置用户针对 SPA 前端文件的 StaticFileMiddleware 阅读全文
posted @ 2022-09-12 14:19 dudu 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 这两天在开发中的一个功能需要用到定时任务,正好最近准备更多使用 dapr,于是想到这个经常重复编写的代码看是否可以让 dapr 代劳,了解之后发现可以通过 cron binding 实现,动手之后轻松搞定,写博文记录一下 阅读全文
posted @ 2022-08-16 12:54 dudu 阅读(86) 评论(3) 推荐(0) 编辑
摘要: 使用下面的命令将 kube-master1 作为 control-plane 加入 k8s 集群,加入 etcd 集群时卡住,在 /var/log/containers 中发现 etcd 的错误日志,从日志看是请求 `https://10.0.9.171:2380/members` 时,10.0.9.171 返回的证书不对。 阅读全文
posted @ 2022-05-21 08:31 dudu 阅读(322) 评论(1) 推荐(0) 编辑
摘要: 昨天在一个高可用集群中添加一台 control-plane 时造成 etcd 无法启动,引发集群故障,在这篇博文中记录一下故障处理过程。Kubernetes 版本是 1.24,加入前集群中只有1台 control-plane,主机名是 kube-master0,待加入的 control-plane 主机名是 kube-master1。 阅读全文
posted @ 2022-05-20 15:17 dudu 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 之前网络组件用的是 calico,本来想基于 calico 启用 eBPF,但折腾多次没有成功,详见博文`Kubernetes 集群尝试基于 Calico 启用 eBPF](https://www.cnblogs.com/dudu/p/16266354.html`,于是改用 cilium,轻松搞定,这边博文简单记录一下安装步骤。 阅读全文
posted @ 2022-05-14 09:11 dudu 阅读(284) 评论(1) 推荐(1) 编辑
摘要: 之前基于 Kubernetes 1.23.5 + calico 3.22 尝试过,但没有成功,遇到的问题详见 `K8s 网络切换到 Calico eBPF 后 service node port 与 ingress nginx 不能正常工作`,现在基于 Kubernetes 1.24 + calico 3.23 再次尝试启用 eBPF 阅读全文
posted @ 2022-05-14 08:17 dudu 阅读(247) 评论(0) 推荐(0) 编辑
摘要: Kubernetes 1.24 于 2022 年 5 月 3 日正式发布(详见 [Kubernetes 1.24: Stargazer](https://kubernetes.io/blog/2022/05/03/kubernetes-1-24-release-announcement/)),1.24 版本的一个重大变化是从 kubelet 中移除了 dockershim,因此我们将 container runtime 从 docker 切换至 containerd,从而给升级过程中制造了不小的麻烦。 阅读全文
posted @ 2022-05-11 21:30 dudu 阅读(1254) 评论(0) 推荐(2) 编辑
摘要: 刚开始测试 dapr 时为了图省事,使用了 pubsub.redis,现在准备上生产环境,改用支持消息支持化的 pubsub.rabbitmq。用 helm 安装 rabbitmq,使用 chart 的是 bitnami/rabbitmq。需要注意的是 host 参数部分,`user:password` 是连接 rabbitmq 的用户名与密码, 用 bitnami/rabbitmq chart 创建的 rabbitmq 默认用户名就是 `user`,密码在 secret 中 阅读全文
posted @ 2021-12-03 20:51 dudu 阅读(492) 评论(2) 推荐(1) 编辑
摘要: 最近我们在 kubernetes 集群上部署 rabbitmq 时遇到一个场景,需要将 rabbitmq 使用的 persistent volume 从阿里云性能型 nas 切换为极速型 nas,因为只有极速型 nas 才支持快照与备份功能。Persistent volume 是基于 kubernets dynamic volume provisioning 创建的,这篇博文分享一下我们的操作步骤。 阅读全文
posted @ 2021-12-03 15:37 dudu 阅读(571) 评论(0) 推荐(0) 编辑
摘要: 我们决定从这周开始在实际开发中使用 dapr,先在 pub/sub 场景使用。这篇博文记录一下在 kubernetes 集群中基于 ASP.NET Core 使用 dapr 发送/订阅消息的试验过程。Dapr 环境准备,应用A发送消息,应用B订阅消息,点火试验,待解决问题 阅读全文
posted @ 2021-11-21 15:40 dudu 阅读(575) 评论(2) 推荐(1) 编辑
摘要: 接着运行 dapr init ,报错:"docker: no matching manifest for windows/amd64 10.0.17763 in the manifest list entries." 查找资料后得知 docker engine 默认是 Windows container 模式,解决上面的错误需要切换到 Linux container 模式,这时才注意到安装 dapr 时的提示。 阅读全文
posted @ 2021-11-18 21:20 dudu 阅读(1046) 评论(4) 推荐(2) 编辑
摘要: 准备将园子的部分图片站切换到华为云 CDN,切换前需要解决 CDN 缓存刷新问题。华为云 CDN 帮助文档列出的 SDK 中没有 .NET 版,原以为华为云没有提供官方 .NET SDK,于是在博问上提问看有没有非官方的 .NET SDK, 在园友的回答中惊喜地知道,原来华为云已经提供官方 .NET SDK 阅读全文
posted @ 2021-11-15 14:40 dudu 阅读(380) 评论(1) 推荐(2) 编辑
摘要: 将 k8s 从 1.17.0 升级到 1.22.3 之后部署 ingress 时报错,原来从 1.19 开始 ingress api 版本变成了 `networking.k8s.io/v1`,改为 `networking.k8s.io/v1` 后出现新的报错,我们添加的 ingress 规则多数是基于域名的,而 v1 版必须要指定 `path` 与 `pathType` 阅读全文
posted @ 2021-11-13 15:37 dudu 阅读(4036) 评论(0) 推荐(2) 编辑
摘要: 今天在一个合作项目对接中遇到了不同技术平台的 AES 加解密问题,我们用的是 C#,合作方用的是 PHP,我们要把 AES 加密的密文传给合作方用 PHP 进行解密。在这篇随笔中记录一下今天下午折腾的小成果。 阅读全文
posted @ 2021-10-26 18:59 dudu 阅读(506) 评论(0) 推荐(1) 编辑
摘要: 经过实际验证的修改 master IP 地址的操作步骤,千真万确,错一罚十,kubernetes 版本是 v1.20.2。折腾过程中所走的弯路是有4个ssl证书(apiserver, apiserver-kubelet-client, front-proxy-client)没有重新生成,造成修改 IP 后 kubectl 命令是可以正常执行但 master 总是处于 NotReady 状态。 阅读全文
posted @ 2021-07-17 07:48 dudu 阅读(1218) 评论(1) 推荐(1) 编辑
摘要: 今天写代码时遇到一个奇怪的问题,下面的代码 Console.WriteLine("pattern1: " + pattern); if (pattern == "测试1") { pattern = "测试2"; } Console.WriteLine("pattern2: " + pattern); 阅读全文
posted @ 2021-07-12 19:01 dudu 阅读(220) 评论(0) 推荐(2) 编辑
摘要: CRD(Custom Resource Definition) 是 kubernetes 强大扩展能力的一处体现,联系到编程场景,CRD 相当于是类(class),custom resource 相当于是对象或者实例,通过 CRD 可以创建自己定义的资源类型,api server 会直接支持,可以通过 kubectl 命令创建对应的资源并对资源进行删/查/改的操作 阅读全文
posted @ 2021-03-08 17:22 dudu 阅读(1875) 评论(0) 推荐(2) 编辑
摘要: 拿到集群 api server 地址,拿到集群 ca 证书,创建具有集群管理权限的 ServiceAccount 并拿到其 token,配置 kubectl,设置之前拿到的 api server 地址与 ca 证书,设置连接集群的 ServiceAccount 的 token,设置 context,设置默认 context,用配置好的 kubectl 开船 阅读全文
posted @ 2021-03-05 22:26 dudu 阅读(811) 评论(0) 推荐(0) 编辑
摘要: 尝试通过远程的一台电脑用 curl 命令连接 k8s 集群,实地体验 k8s 的安全机制。连接集群三要素:1)control plane 地址(api server 地址);2)集群 ca 证书;3)ServiceAccount token(访问 api server 的 access token) 阅读全文
posted @ 2021-03-05 11:58 dudu 阅读(858) 评论(0) 推荐(0) 编辑
摘要: 问题场景:基于 ASP.NET Core 路由模板(route template)从 url 字符串取值,路由模板是 "/{blogApp}/{postType}/{idOrSlug}.html",需要取值的博文 url 地址实例 https://www.cnblogs.com/cmt/p/14408628.html 。参考 ASP.NET Core 源码中的测试代码 RouteTest.cs#L56,通过 Route.RouteAsync() 方法实现了,RouteTest 中好几处用了 Mock,这里实现时没有使用 Mock。 阅读全文
posted @ 2021-03-01 16:10 dudu 阅读(346) 评论(1) 推荐(0) 编辑