原创 困擾多年的 Kubernetes 健康檢查問題終於解決了

我們有一個部署在 k8s 上的應用被一個健康檢查問題困擾多年,每次發佈時由於健康檢查(readiness probe)失敗,pod 要被重啓很多次,快的話要等半小時到1小時 pod 才能啓動成功,慢的話要等幾小時甚至十幾個小時,最近一次最誇

原创 一次 gitlab 升級失敗的處理過程記錄

這次升級是從 15.8.3 升級至 15.9.1 ,通過下面的 rpm 安裝命令進行升級 rpm -Uvh gitlab-ce-15.9.1-ce.0.el7.x86_64.rpm 升級過程中卡在 gitlab::database_mig

原创 遇到反射時找不到依賴程序集的問題

今天在一個 ASP.NET Core 7.0 的項目中遇到反射時 Could not load file or assembly 的問題,build 時沒問題,運行時出現下面的異常 System.Reflection.Reflection

原创 借力 Xunit.Microsoft.DependencyInjection 開源庫,單元測試依賴注入更輕鬆

今天在寫單元測試代碼中依賴注入部分時在網上找了找,看有沒有對應的開源好庫,結果發現了 Xunit.Microsoft.DependencyInjection,現學現用體驗了一下,感覺味道不錯,在這篇博文中簡單記錄一下。 安裝 nuget 包

原创 將錯就錯:DNS 錯亂解析造成錯誤請求,藉助 YARP 轉發給正確的應用

最近園子在部署 IPv6 時遇到了一個非常奇怪的 dns 解析問題,當給非 www 二級域名(比如 q.cnblogs.com)添加 AAAA(IPv6) 記錄後,部分用戶訪問 q.cnblogs.com 時會被錯誤地解析爲 www.cnb

原创 nuget 打包 pre-release 版本需要注意的文件版本問題

今天在發佈 EnyimMemcachedCore 的一個預覽版 nuget 包時遇到的問題,在這篇博文中記錄一下。 當時發佈的版本是 2.6.0-preview1,使用的打包腳本如下 version=$1 project=Enyim.Cac

原创 基於 angular material theming 機制修改 mat-toolbar 的背景色

最近在學習 angular,記錄一下昨天的進展,解決的問題是通過 theme 的配置修改 mat-toolbar 的背景色,避免對色彩的硬編碼。 首先通過 mat-toolbar (以下統一稱爲 toolbar)的實現源代碼 _toolba

原创 ASP.NET Core 配置 SPA 的姿勢

分享一下我們在 ASP.NET Core 單頁應用(前端用的是 Angular)中使用的配置代碼: UseProxyToSpaDevelopmentServer 用於 Development 環境,需要自己另外啓動前端開發服務器,比如 n

原创 基於 dapr cron binding 實現定時任務

這兩天在開發中的一個功能需要用到定時任務,正好最近準備更多使用 dapr,於是想到這個經常重複編寫的代碼看是否可以讓 dapr 代勞,瞭解之後發現可以通過 cron binding 實現,動手之後輕鬆搞定,寫博文記錄一下(基於 kubern

原创 排查 Kubernetes 集羣無法加入 control-plane 的問題

使用下面的命令將 kube-master1 作爲 control-plane 加入 k8s 集羣 kubeadm join k8s-api:6443 \ --token ****** \ --discovery-token-ca-c

原创 一次 Kubernetes 集羣故障的處理過程記錄

昨天在一個高可用集羣中添加一臺 control-plane 時造成 etcd 無法啓動,引發集羣故障,在這篇博文中記錄一下故障處理過程。 Kubernetes 版本是 1.24,加入前集羣中只有1臺 control-plane,主機名是 k

原创 Kubernets 網絡升級:安裝 Cilium 用上 eBPF

之前網絡組件用的是 calico,本來想基於 calico 啓用 eBPF,但折騰多次沒有成功,詳見博文 Kubernetes 集羣嘗試基於 Calico 啓用 eBPF。 於是改用 cilium,輕鬆搞定,這邊博文簡單記錄一下安裝步驟。

原创 Kubernetes 集羣嘗試基於 Calico 啓用 eBPF

之前基於 Kubernetes 1.23.5 + calico 3.22 嘗試過,但沒有成功,遇到的問題詳見 K8s 網絡切換到 Calico eBPF 後 service node port 與 ingress nginx 不能正常工

原创 Kubernetes 升級至 1.24 並將 container runtime 切換至 containerd

Kubernetes 1.24 於 2022 年 5 月 3 日正式發佈(詳見 Kubernetes 1.24: Stargazer),1.24 版本的一個重大變化是從 kubelet 中移除了 dockershim,因此我們將 conta

原创 dapr 發佈/訂閱消息組件由 redis 改爲 rabbitmq

剛開始測試 dapr 時爲了圖省事,使用了 pubsub.redis,現在準備上生產環境,改用支持消息持久化的 pubsub.rabbitmq。 之前使用的 pubsub.redis 資源清單如下 apiVersion: dapr.io/