使用 Kubernetes + Traefik 輕鬆實現自動解析與 SSL 憑證簽署 🚀
Traefik 是一款優異的反向代理工具,常被應用於 Kubernetes Ingress 的實踐中。它不僅整合簡單、運行迅速,還支援動態配置,且能夠自動整合 Let’s Encrypt 以進行憑證簽署。本文主要會著重於 Let’s Encrypt 憑證簽署的設定部分。
系統需求 🛠️在我們開始之前,請確保系統已經滿足以下的前置條件:
Kubernetes:用於管理、部署和擴展我們的應用。
Helm:Helm 是 Kubernetes 的套件管理工具,使得安裝和管理 Kubernetes 應用變得更加簡單。
已經完成上述準備了嗎?太好了,現在讓我們開始吧!
安裝 Traefik首先,我們要確認 values.yaml 的配置。這是一個關鍵的設定檔案,主要用於指定 Traefik 的特定參數。
1234567891011121314151617181920212223242526deployment: initContainers: - name: volume-permissions image: busybox:latest command: [&q ...
kubernetes 安裝 metrics server
最近才知道 kubectl top 並不是天生就可以用的,需要另外安裝 metrics-server。
Install直接 apply 最新版的 metrics-server
1kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
看看服務有沒有跑起來
12kubectl logs -n kube-system -l k8s-app=metrics-serverkubectl top po -A
疑難排解Error: x509: cannot validate certificate
edit deployment/metrics-server
1kubectl edit deployment -n kube-system metrics-server
add - --kubelet-insecure-tls to args:
12345678910spec: containers: - a ...
安裝 Let's Encrypt for Nginx
安裝 Let’s Encrypt 工具
123sudo add-apt-repository ppa:certbot/certbotsudo apt-get updatesudo apt-get install certbot
設定 nginx config
123location /.well-known { alias /var/www/example.org/.well-known;}
建立會用到的目錄
1sudo mkdir -p /var/www/example.org/.well-known
產生憑證
1sudo certbot certonly --webroot -w /var/www/example.org/ -d example.org
結果
1234567891011IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/example.org/fullchain.pem. Y ...
這不是刷鍵盤 - asdf 多語言版本管理工具
Why系統上安裝的程式語言太多,每一種又有各自的版本管理工具(nvm, gvm, rvm, phpbrew…),對我來說一直都有相同的兩點困擾:
不統一 :每個不同語言的版本管理工具都有各自的安裝、用法。一樣的語言版本管理卻要學習好幾種不同工具的用法,雖然每一個單獨來看都不難,但分開學習的成本也提高了。
啟動很慢 :因為用了傳說中很慢的 oh-my-zsh ,再加上每個語言的套件管理工具之後,每次重新啟動一個新的 shell 的速度就真的慢到突破天際了。
直到 asdf 的出現解決了這個問題。
Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more
首頁一句簡單的介紹,說明了一切。asdf 提供了一個可擴充的版本管理框架,再透過插件的形式去支援各種語言,甚至是軟體(MongoDB、Postgres、Redis)。
Install它的安裝很簡單,首先要先安裝一些依賴的工具:
For Ubuntu
1$ sudo apt-get install automake ...
安裝最新版 nginx 到 Ubnutu Server 16.04
筆記
Install NginxAdd nginx ppa source
123sudo add-apt-repository ppa:nginx/stablesudo apt-get updatesudo apt-get install nginx
建立設定檔Add site config
1sudo vim /etc/nginx/sites-available/example.com
Edit file /etc/nginx/sites-available/example.com
靜態網站範例
123456789server { listen 80; ## listen for ipv4; this line is default and implied # listen [::]:80 default ipv6only=on; ## listen for ipv6 root /var/www/example.com/public_html; index index.html index.htm; server_name ex ...
隨身遠端的好工具 - Mosh
平常在外面使用 ssh 連回 Server 的時候經常遇到一個問題,就是網路不穩害得必須一直重新連線。後來發現 Mosh 這個好東西,可以在幫我處理掉這個問題,在重新連上網路之後幫我把連線重新接回來。
安裝平常都用 Mac,如果有裝 brew 的話安裝非常簡單,只要一個指令
1$ brew install mobile-shell
在 Ubuntu 下安裝
1234$ sudo apt-get install python-software-properties$ sudo add-apt-repository ppa:keithw/mosh$ sudo apt-get update$ sudo apt-get install mosh
連線方法
1$ mosh username@server-ip
或者如果想指定 Port 的話
1$ mosh --ssh="ssh -p 2222" username@server-ip
後記今天在裝新版 ubuntu 14.04 的時候發現,mosh 其實是可以直接安裝的,所以其實可以直接安裝就好。
1$ sudo ...
Ubuntu Server 簡易筆記(一)
因為常常手癢重裝,只好寫個簡單的安裝快速筆記避免自己找麻煩,第一篇先紀錄一下連線的方法。
目前選用的環境是放在Amazon EC2上面,不過建立Instance的部份就懶得細述了,反正就是點Lunch Instance然後選OS就好,記得如果有建新的Key Pair切記要下載回來保存好。
關於連線關於連線的部份,記得第一次用的時候也真的被搞了很久,後來發現重點就是剛剛下載回來的Key Pair。
ssh連線指令像這樣
1$ ssh -i yourkey.pem ubuntu@ec2-12-234-56-78.xxxxxxxxx.compute.amazonaws.com
記得把 yourkey.pem 換成下載下來的檔案,@後面換成自己的主機位置,主機位置可以在這個地方找到
新增User因為在Amazon EC2 上的Ubuntu預設會給一個User叫做ubuntu。看起來彆扭,所以我習慣會另外建個User,很簡單只要
1$ sudo adduser Username
只要輸入兩次密碼,後面都可以跳過。然後幫自己加個管理者權限(慎用)
1$ sudo usermod - ...