Bastion Host - Teleport 介紹

預估閱讀時間: 4 分鐘
event 2021/7/20
work 程式
work 雲端
turned_in 中篇
turned_in K8S
turned_in 工具
最近公司內部使用 Teleport 作為 Bastion Host,使用起來非常方便,寫篇文章簡單介紹一下它。
什麼是堡壘機 Bastion Host 通常我們會把內部的服務像是 Databases 或應用程式放在 Private Subnets,這些機器不能直接由 Public IP 存取,而是藉由 Load Balancers (ALB, ELB) 將流量導向內部的機器,這樣可以保護我們的服務不受外部攻擊,只讓真正需要對外的服務能夠被存取。如下圖所示(通常 Applications 和 Databases 不會放在同一個 Subnet): 不過我們偶爾還是需要 SSH 進去 Private Subnets 中的機器進行部署或診斷,這時候就需要額外的「跳板」讓我們連進機器了,這台機器就稱為 Bast

中繼憑證設定遺失問題

預估閱讀時間: 3 分鐘
event 2021/5/4
work 程式
work 雲端
turned_in 短篇
簡單解釋中繼憑證以及未正確設定時會發生的問題。
甚麼是中繼憑證 一般來說,證書頒發機構 (certificate authority, CA) 不會用真正的根憑證 (Root Certificate) 來簽發給使用者的憑證,畢竟終端使用者這麼多,放在線上每天簽屬風險太大。相對的,CA 會使用根憑證先簽發一張憑證,再用這張憑證來簽發給大家的憑證,這張憑證就稱為「中繼憑證」(或中間憑證,Intermediate Certificate)。 比如說著名的 Let’s Encrypt,目前 (2021 五月) 使用的根憑證是 DST Root CA X3,用來簽發的憑證則是 R3: Let's Encrypt 憑證,圖片來自 https://l

Kubernetes 上的 ExternalTrafficPolicy

預估閱讀時間: 16 分鐘
event 2020/11/15
work 程式
work 雲端
turned_in K8S
turned_in Azure
turned_in 進階
turned_in 長篇
在 Kubernetes 中 Pod 接收到的流量來源 IP 通常會是內部 (Node) IP,若想保留原始的來源位址的話必需修改 Service ,這篇文章粗略的介紹 kube proxy 如何處理流量以及說明 ExternalTrafficPolicy 的不同模式
前言 最近公司改用 Nginx ingress controller 配合一個 L4 Load Balancer 來處理進站流量,取代過去使用 Application Gateway,在部屬時發現官方預設在 Service 上設定 ExternalTrafficPolicy = Local (Ingress-nginx Azure deploy.yaml),AKS 文件上也提到如果想保留客戶端來源 IP 的話,必須要這樣設定。 經果一番探索後,發現和 Kube-proxy 如何處理進進站流量有關,也算是解答了我對 Service 實作的問題,這篇文章來記錄一下研究成果 🎉 Kube Pr

Kubernetes 上的保留資源

預估閱讀時間: 3 分鐘
event 2020/8/22
work 程式
work 雲端
turned_in K8S
turned_in 短篇
turned_in Azure
turned_in AWS
最近發現我們在 Azure Kubernetes Service (AKS) 上的 Pod 很容易被驅逐,查了一下才發現原來我們不能用盡 Node 上的所有資源,這篇文章就來看看我們必須留下多少資源給系統吧。
最近發現我們在 Azure Kubernetes Service (AKS) 上的 Pod 很容易被驅逐,查了一下才發現原來我們不能用盡 Node 上的所有資源,這篇文章就來看看我們必須留下多少資源給系統吧。 Node Capacity 在 Kubernetes 上執行 Pod 的時候,我們可以指定 Resource Request/Limit 來告訴 K8S 我們的程式需要多少的資源來運行,K8S 會自動幫我們安排到符合條件的節點上,像下面這樣: resources: requests: memory: "64Mi" cpu: "250m" limits:

Kubernetes cluster autoscaler 介紹

預估閱讀時間: 9 分鐘
event 2020/5/10
work 程式
work 雲端
turned_in 中篇
turned_in K8S
turned_in Azure
turned_in AWS
turned_in CA
在一般的開發我們很少會處理到群集的伸縮,整個產品中可能就會研究一次,所以我稱這次工作上難得處理到 K8S Cluster autoscaler,趕快記錄下來,也和大家分享。
甚麼是 Cluster Autoscaler (CA) Cluster Autoscaler (以下簡稱 CA) 是 Kubernetes 官方出的一個工具,讓你的 Cluster 依照需求伸縮,簡單來說就是幫你開/關雲端上的機器。通常會配合上 Horizontal Pod Autoscaler (以下簡稱 HPA) 一起使用,當 Pod 記憶體/CPU 或其他指標達到一定標準後,擴展 Pod,當沒有足夠的機器 (Node) 來執行 Pod 時,CA 就會幫你擴展機器。相反的需求下降時,HPA 降低 Pod 數量,CA 也會關閉不需要的機器,如此一來就可以節省成本又可以達到同樣的運算能力。

使用 Azure user delegation SAS 來簽署 Blob 權限

預估閱讀時間: 3 分鐘
event 2020/4/19
work 程式
work 雲端
turned_in 短篇
turned_in Azure
turned_in Blob
最近在把原本使用 AWS S3 的服務轉往 Azure storage,需要實作類似 S3 中 Presigned URL 的功能,順便寫點筆記紀錄一下,這篇文章我會使用微軟建議的 User delegation SAS 來增加安全性。
最近在把原本使用 AWS S3 的服務轉往 Azure storage,需要實作類似 S3 中 Presigned URL 的功能,順便寫點筆記紀錄一下。 Presigned URL 在 AWS S3 中有個稱為 Presigned URL 的功能,簡單來說你可以產生一個專用的網址給 Client 端,裡面限定權限和使用期限之類的訊息,Client 端拿到這個網址後就可以直接對資源發出請求,例如下載/上傳檔案之類的事情。你可以完全管理權限,流量又不必經由伺服器再到客戶端,在處理大檔案的時候非常實用。 Azure SAS 在 Azure Blob storage (類似 S3 的服務)中也有

Goofy's blog

Hi, 這是一個沒有技術的工程師的部落格,會寫些技術筆記、旅遊紀錄以及大量的廢話,歡迎拍打餵食。
有任何建議都可以在文章下方留言或是到 Github 上開 Issue 😃