[K8s] Kubernetes – 容器管理工具指南

Intro Kubernetes – Wikipedia Kubernetes Documentation Kubernetes,簡稱 K8s,是一個開源平台,用來自動化部署、擴展以及管理容器化應用程式。最初由 Google 開發,現在由 Cloud Native Computing Foundation (CNCF) 維護,已經成為容器編排的業界標準。 隨著應用程式越來越複雜,手動管理容器變得非常麻煩。K8s 提供了一些強大的功能,讓運維和開發更輕鬆: 自動排程 (Scheduling):智慧地把容器放到資源最優的節點上 自我修復 (Self-Healing):當容器或節點出問題時,K8s 會自動重啟、重新排程或替換 動態擴展 (Scaling):根據流量需求自動增減容器 服務發現 & 負載平衡 (Service Discovery & Load Balancing):自動為容器提供穩定的存取點並分流流量 宣告式管理 (Declarative Configuration):只要用 YAML/JSON 定義好「想要的狀態」,K8s 會自動幫你達成 Key […]

[VPN] OpenVPN Server 架設指南– on Ubuntu

Intro OpenVPN – Wikipedia 目前 Client 支援各大裝置平台的 VPN 軟體套件,簡單架設的話可以使用有網頁管理介面的商業版本OpenVPN Access Server,目前提供無限期2個VPN連線授權可免費試用。 安裝 Launch OpenVPN Access Server On Ubuntu – OpenVPN Port原理 設定完成的 Access Server,會依照設定的 TCP 和 UDP port 提供服務 (另外也有 Web server port) Client 可利用 URL 方式設定 config file,依照 Host […]

[Network] Linux Telnet & Netcat (nc) – 測試TCP/UDP工具

Intro Netcat (nc) Telnet Telnet 簡單用於測試TCP連線 $ telnet www.example.com 80 GET /path/to/file.html HTTP/1.1 Host: www.example.com Connection: close Netcat (nc) TCP/UDP讀寫工具,測試UDP利器 在埠25建立內容未加工過的連接(類似telnet): $ nc mail.server.net 25 利用零模式I/O(參數 -z)檢查192.168.0.1的UDP埠(參數 -u)80-90是否開啟: $ nc -vzu 192.168.0.1 80-81 測試UDP,透過發送訊息 $ nc -vu example.com 443 Connection […]

[Web] 應用程式部署方法論 – Web Application Deployment

Intro Web application 部署方式整理 Methodologies 部署策略 Rolling Update 滾動升級 Performing a Rolling Update – Kubernetes 通常用於已 Container 化環境,配合如 Load Balancer 來逐步轉導流量到新的版本。 主要利用逐步引入新版本的 instance 方式 ,替換舊的 instance 並在完成後關閉。 Blue-Green 藍綠部署 部署前準備好一組新版本的環境,等於同時有兩個不同版本的相同環境。配合 Load Balancer 將所有流量一次轉導到新的環境,有問題時只需要 rollback 即可,缺點為維護期間需要兩組環境的成本。 Blue-green deployment Canary Deployment 金絲雀部署 […]

[HTTP-Headers] Cookie – Secure flag 指南

Intro Wikipedia – HTTP cookie – Secure and HttpOnly Secure flag 旨在要求將cookie加密,使瀏覽器僅能通過安全/加密連接(HTTPS)使用cookie。 另外經常被一起討論的還有 HttpOnly Flag: [[HTTP-Headers] Cookie – HttpOnly flag 指南 實作於程式語言 PHP Option 1: 實作於 Application 層級 <?php ini_set(‘session.cookie_secure’, 1); session_start(); ?> 一般知名 PHP framework 會提供 Secure flag 的 […]

[HTTP-Headers] Cookie – HttpOnly flag 指南

Intro Wikipedia – HTTP cookie – Secure and HttpOnly DEVCORE – HttpOnly – HTTP Headers 的資安議題 (3) HttpOnly flag 要求瀏覽器不要通過 HTTP/HTTPS 以外的管道使用cookie。意即無法通過客戶端Script(尤其是JavaScript)存取cookie,因此無法通過跨站點指令碼攻擊輕易竊取。 另外經常被一起討論的還有 Secure Flag: [HTTP-Headers] Cookie – Secure flag 指南 實作於程式語言 PHP Option 1: 實作於 Application 層級 <?php ini_set(“session.cookie_httponly”, […]

[DNS] CAA – Certification Authority Authorization 指南

Intro DNS CAA (DNS憑證頒發機構授權) – Wikipedia RFC 6844 通過域名持有人指定其域名的白名單憑證頒發機構來實現的安全機制。 該政策透過一個新的域名系統資源記錄(Record)「CAA」來實現,Record範例如下: example.com. CAA 0 issue “ca.example.net” 設定 首先 DNS records 要能夠支援 CAA record 再來針對憑證機構產生及設定 CAA record 即可,以下範例以 Letss Encrypt 機構為例: example.com. CAA 0 issue “letsencrypt.org” CAA Record Helper – CAA資源記錄產生器 References […]

[Kafka] Apache Kafka 指南

Intro Kafka – wikipedia Kafka 採用分散式架構實現了高性能的 Logging 與 Messaging 功能。與 RabbitMQ 相比,Kafka 採用 Pull Model,允許 Consumer 根據自身處理能力主動拉取資料,且支援訊息重覆拉取與留存 (Retention),這使得資料不僅能被即時處理,還具備了事後回溯與批次分析的能力。 分散式架構與演進 在早期的 Apache Kafka 架構中,ZooKeeper 扮演著關鍵的「外部大腦」角色,負責管理 Cluster 的元數據(Metadata)、選舉 Controller 以及記錄 Partition 的狀態。然而,隨著數據量級的提升,這種「雙系統」架構產生了元數據同步延遲與維護複雜度的瓶頸。 為了優化效能,Kafka 自 2.8 版本引入了 KRaft (Kafka Raft) 模式,並在 3.x 版本後趨於成熟。KRaft […]

[Mongo] MongoDB 指南

Intro MongoDB – Wikipedia Introduction to MongoDB Cluster MongoDB Clusters Sharding MongoDB Sharding 分散式儲存架構建置 (概念篇) MongoDB Sharding 分散式儲存架構建置 (實作篇) Replica MongoDB Replica Set 高可用性架構搭建 Query / Mongo Shell [Mongo] Query & Mongo Shell 指南