NGINX for Windows轉移NGINX for Linux注意事項
最近終於把早期的 NGINX for Windows 轉移至 NGINX for Linux,在轉移過程有不少平台差異造成設定上需微調。以下整理 NGINX from Windows to Linux 一些組態的差異性,以及轉移後進行的一些調整。
最近終於把早期的 NGINX for Windows 轉移至 NGINX for Linux,在轉移過程有不少平台差異造成設定上需微調。以下整理 NGINX from Windows to Linux 一些組態的差異性,以及轉移後進行的一些調整。
我們想在地端原有的 Azure DevOps Agent(Based on Linux)對地端的另一台 Linux VM 下一些指令,但某些指令需要使用 sudo 來提權。大致架構如下:
Azure Pipeline(Cloud) ←-> Azure Agent (on-premise,Linux VM) ←-> SSH - sudo commands(on-premise,Linux VM)
現在SSL憑證改成最長時效只有一年已經好幾年了。因此,一開始的故事很簡單,SSL憑證更新之後公司內網所有對此服務(我們暫定為:https://api.kkbruce.net/,雖有點圖文不符,反正就是個含正式SSL憑證的端點)的請求一律失敗(如上圖)!真的是嚇死寶寶了。整個追蹤的時間很長,我盡量整理重點說明就好,但這一路下來,對於整個SSL憑證又多瞭解了一些。
在前一篇分享之後,收到社團朋友的提醒,原因是主機停用 IPv6 造成繫結失敗,不是我說的那樣,這要快點再寫一篇釐清一下。
其實安裝當下,提供的日誌寫的很清楚,是自己沒用心看。
nginx[1695]: nginx: [emerg] socket() [::]:80 failed (97: Unknown error)
第一次在 Ubuntu Server 22.04 安裝 NGINX,參考官方教學與另一篇都覺得寫的不錯,反正就是 apt install nginx 就結束了。看到應該這裡就知道,事情沒那麼簡單,因為參考了一些文件,安裝的都不是很順利,因此記下此筆記一篇。
官方教學與另一篇我覺得都寫的不錯:
但執行起來怎麼問題一堆:
一早登入系統,注意到有二行提醒文字,第一次看到 Ubuntu 的 firmware upgrade 因此留個筆記。
1 device has a firmware upgrade available.
Run `fwupdmgr get-upgrades` for more information.
事情是這樣的,新申請的 Ubuntu VM 需要修改些 IP 相關組態,例如,DNS Server 或 Search Domain,結果發現,在 /etc/netplan 下的 00-installer-config.yaml 不見了,取而代之是一個 50-cloud-init.yaml 的組態檔。
cat /etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
ens33:
addresses:
- 192.168.0.25/24
nameservers:
addresses:
- 1.1.1.1
- 8.8.8.8
search: []
routes:
- to: default
via: 192.168.0.1
version: 2
用 cat 會看到幾行重要的註解內容。直接對 50-cloud-init.yaml 的進行修改,在重開機後會覆寫回來。試了註解裡的 99-disable-network-config.cfg 沒什麼效果,對 50-cloud-init.yaml 的修改在重開機後還是會被覆寫回來。
$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 1.2G 7.7M 1.2G 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 97G 76G 17G 82% /
話說,早期自架 Kubernetes 的 Ubuntu Server,不小心由 PoC 轉正之後,各項 Pod 服務陸續上線。但 PoC 的規格沒開到那麼好,近期發現, LVM(Logical Volume Manager)空間使用率已超過 8 成。在 IT 同事擴充 Disk 容量後,不論 Windows 或 Ubuntu 都一樣,還需要在 OS 層級些設定調整。以下學習一下 Ubuntu Server 如何做延伸 Disk 與 LVM 兩者的磁碟容量。
之前在架設 Kubernetes 叢集預設把防火牆給關閉。當然,關閉防火牆是非常不安全的行為。 當所有 Kubernetes 和 Calico 組態與服務都上線之後,我們需要把防火牆設定回去。
這裡只針對兩個部分:Kubernetes 與 Calico 所以需要埠(Port)。
因自建 Kubernetes 的關係,常常需要重灌 Ubuntu Server 做一些 PoC,每次都會做 IPv4 與 IPv6 的調整,如果重建的時間久一點,容易忘東忘西,做個筆記較實在。
話說[前篇]處理好Notebook、Hyper-V網路與VM網路之間的問題之後,在MicroK8s的幫助下,從Kubernetes到Kubernetes Cluster幾乎都是一行指令就能完成。
安裝MicroK8s:
sudo snap install microk8s --classic --channel=1.25
建立與加入Cluster:
microk8s add-node
方便代表看不到細節。因為想要瞭解細節,因此又花了一些時間學習如何從無到有設定與安裝Kubernetes與建置Kubernetes Cluster。
標題很繞舌,這篇想要處理二個在Hyper-V架設Ubuntu Server與MicroK8s碰到的問題:
離開Linux多年,最近一些Container(容器)需求,需要回到Linux的世界(看一下Windows Container,讓我嘆口氣!)。伺服器方面,由於想玩MicroK8s,因此選擇Ubuntu Server,由於是全新安裝,直接選最新22.04 TLS版本來使用。網路部分,我們會透過一台Azure架設的Proxy來當對外的端點。Proxy部分可以參考另一篇「整合EXPRESSROUTE以YARP架設內網MCR代理伺服器」的架構。但與透過YARP存取指定的MCR不同,由於在Ubuntu上需要安裝或更新不特定來源的套件,例如,Ubuntu APT、snapd、…,因此YARP比較不合適。我們另外使用Azure Container Instances採用了ubuntu/squid映像檔快速架設出一台通用存取的Proxy。