The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

利用 Multipass 在區域網路架設一套 MicroK8s 叢集環境

我之前有篇 使用 MicroK8s 架設 Kubernetes 叢集的完整過程解析 文章,講解了完整的 MicroK8s 體驗的過程。雖然你可以在 Windows 上輕鬆的架設出一套 Kubernetes 叢集,但是由於 MicroK8s 的底層使用到了 Multipass 工具來建立虛擬機器(VM),事實上透過 Multipass 建立的 VM 在每次重開機的時候都會變更 IP 地址,因此只要 VM 重開機,基本上叢集就會壞掉,因為所有 Worker Nodes 將無法找到 Control Plane 的 IP 地址。這篇文章我來說說這個問題的解決方法!

... 繼續閱讀 ...

變更 Azure App Service 的時區設定需注意 Windows 與 Linux 平台的差異

當你在 Azure 使用 App Service 部署網站時,預設的時區是設定在 UTC 時間,當你的網站不需要處理跨時區的問題時,最簡單的解法,當然就是調整系統設定,讓你的程式可以直接讀取到台灣時區的時間 (UTC+8),原本我們都設定的好好的,但上周突然決定要改用以 Linux 為主的 App Service Plan,這才發現時區設定失效了,查詢後才發現原來設定不同!這篇文章我將說明如何正確的調整 App Service 的時區設定。

... 繼續閱讀 ...

ASP.NET Core 如何部署到 CentOS 7 作業系統

最近有個專案要上線,客戶提供一台 CentOS 7 的主機給我們部署,但是官網的文件主要都是以 Ubuntu 作業系統為主,並沒有完整的文件說明如何在 CentOS 安裝,我在架設 Labs 環境安裝的時候,也發現部署過程真的有點地雷,所以我打算用這篇文章說明一下實際的安裝步驟。

... 繼續閱讀 ...

如何在 Linux 正確建立自簽憑證並讓 ASP.NET Core 網站可以順利進行連線

我最近漸漸的嘗試將各種前後端開發環境搬遷到 Linux 環境下,無論是在 WSL 或是原生的 Linux 的效能表現都比 Windows 來的出色。然而在微服務架構下,服務與服務間的通訊經常需要使用 TLS/SSL 憑證進行加密連線,但是自簽憑證在 Linux 底下預設是不受信任的,必須特別處理才能解決服務間的安全連線的信任問題。這篇文章我將說明這個過程與解決方法。

... 繼續閱讀 ...

如何在 Ubuntu Linux 解除安裝 .NET SDK 或 Runtime 任意版本

雖然 .NET 有個 Uninstall Tool 可以用來解除安裝任何 .NET / .NET Core 版本,但是目前依然不支援 Linux 版本,可能是 Linux 生態實在是太複雜了,所以一直沒有提供好用簡便的反安裝工具。今天這篇文章我將分享幾個好用的命令,幫助你快速解除安裝現有的 .NET SDK 與 Runtime 版本。

... 繼續閱讀 ...

使用 luit 完美解決 Windows Subsystem for Linux 顯示 Big5 字集的問題

對於 WSL (Windows Subsystem for Linux) 一直無法處理 Big5 字元這件事,對我來說就像在一片白牆上的一個污點,明知這面白牆很漂亮,但就是無法不注意牆上的那個污點,一直覺得不完美,直到昨天都還是解決不了。睡一覺之後,想到了一個新的關鍵字,找到了一個 luit 工具,這就是我昨天一直想要找到的工具!

... 繼續閱讀 ...

分享幾個在 Windows 與 Linux 常見的編碼問題與解決方案

我每隔幾年我就會遇到一次 non-Unicode 的編碼問題,真的不常見,但這些年來也處理過無數次了,每次都被搞的很煩。最近在 Linux 環境又遇到棘手的編碼問題,檔案內容是從 ISO-8859-1 (Latin-1) 字集的 Sybase ASE 資料庫轉出,所以編碼是 ISO-8859-1 字集,但內容其實是 BIG5 字集,而我用 Windows Terminal + WSL 2 又只支援顯示 Unicode 字集的文字,所以文字無法正常在螢幕上顯示或複製。幾經嘗試後,我決定把這幾年累積的心得都寫下來,以免日後又要再花時間研究一次。

... 繼續閱讀 ...

在 Linux 如何使用 curl 下載從 Google Drive 分享的檔案

前陣子我需要安裝一台 Sybase ASE 資料庫到 Linux 主機,當我拿到安裝檔的時候,其實是一個 Google Drive 共用的連結,檔案大小有 1.4GB 左右,我不想先下載到我的 Windows 主機再上傳到 Linux 主機,我想直接從 Linux 主機下載該檔案。上網找了許多解決方案,但是這些作法幾乎都已經失效,最後還是自己研究出了一個很棒的方法,有需要的人請繼續看下去。

... 繼續閱讀 ...

關於 Linux 下 Bash 與 Zsh 啟動檔的載入順序研究

Linux 用了二十多年,從沒認真想過 Login Shell 載入的啟動檔順序為何,我們經常會看到 .bashrc, .bash_profile, .bash_login, .profile 諸如此類的檔案,在安裝一些工具或系統的時候,也多多少少會需要設定這些檔案,加入一些環境變數或其他設定之類的。除了我常用的 Bash 以外,外面還有 Zsh 也很多人用,這時到底要編輯哪個檔案才是正確的呢?我將用這篇文章來好好釐清這個真相。

... 繼續閱讀 ...

Ubuntu 20.04 LTS 伺服器如何調整網路介面設定從 DHCP 變更為固定 IP 地址

Ubuntu 20.04 LTS 伺服器預設採用 Netplan 作為網路設定的工具,但是要變更網路介面設定實在是有點麻煩,沒找到有好用的 TUI (Terminal UI) 工具可以用。我想透過這篇文章記錄一下變更 IP 設定的過程。如果有不同的網路情境導致設定步驟不同,我會陸續補充到這篇文章裡。

... 繼續閱讀 ...

執行 Docker 容器可使用 dumb-init 或 tini 改善程序優雅結束的問題

現在越來越多環境都跑在 Docker 環境下,但不知道你是否有遇過想要停止容器,但執行 docker stop 之後卻無法立即停止的狀況?這個問題會牽扯到我在 當 .NET Core 執行在 Linux 或 Docker 容器中如何優雅的結束 文章中提到的 訊號(Signal) 是如何傳送到容器的程序。這篇文章我將更深入的探討這個問題,以及提供解決方法。

... 繼續閱讀 ...

如何在 Linux 搬動資料夾與其所有檔案到另一個同名資料夾

我今天遇到一個緊急事件,我有台 Linux 主機意外的被一個 Bug 吃光所有磁碟空間,導致服務中斷。我原本想將檔案搬移到另一個地方,但是這個資料夾檔案特別多,不但檔案多,資料夾也多,我先用 mv 搬到另一個地方,空出足夠的空間後,先終止搬移作業,打算先修復服務,然後就無法搬了!💥

... 繼續閱讀 ...