發表文章

新一代LB - Traefik

新一代LB   -   Traefik Traefik突破以往我們對load   balancer的觀點,他是一套直接與docker整合的load   balancer套件...   透過Traefik,我們可以使用label的方式將後面啟動的docker   instance掛載到loadbalancer中,且無需重新啟動Traefik,可直接生效... Traefik基本介紹 Traefik是以動態重載新加入的docker   instance的方式來替有附加相同domain   label的dockerinstance建立網路附載平衡的關聯...   因此,設定上,與一般我們建立reverse   proxy的過程剛好相反(一般我們會先建立服務,再建立reverse   proxy將服務串連起來)... Step1   -   建立Traefik服務 下面我們用官方的compose   file來說明... File:   docker-compose.yaml version: '2' services: proxy: image: traefik command: --api --docker --docker.domain=docker.localhost --logLevel=DEBUG networks: - webgateway ports: - "80:80" - "8080:8080" volumes: - /var/run/docker.sock:/var/run/docker.sock - /dev/null:/traefik.toml networks: webgateway: driver: bridge 其中traefik啟動時候,我們需要指定docker.domain來告訴taefik要聆聽的domain是哪一個,然後要事先開啟對應的port,讓外部服務可以連到traefik...,另外,我們將dockersocket掛載進來,這是必要的...

Auto SSL - Using OpenResty

Auto   SSL Auto SSL中,目前筆者有接觸過的是 LetsEncrypt 的服務,設定上可以搭配 CertBot 來做設定... 當然有更簡單的方式... 下面是Github上的公開專案,是基於OpenResty與Lua開發的工具,可以讓我們透過LetsEncrypt自動附加、更新SSL憑證,一切的一切,只需要把server啟動即可... Step1   -   下載專案 由於該專案並未有太多其他附加的設定,我們可以直接下載該專案然後做修改,或是fork到自己的repo做其他開發... $ git clone https://github.com/rmoriz/docker_openresty_autossl Step2   -   建立自己的docker 待需要修改的部分完成,我們可以在本機將他build成docker   image供後續使用... $ cd docker_openresty_autossl $ docker build -t autossl . Step3   -   啟動docker 最後,我們只需要將該docker   image啟動,即可同時有HTTPS與HTTP協定的入口... $ docker run -d -p 80:80 -p 443:443 rmoriz/openresty_autossl 其中,由於openresty的設定檔與nginx的設定相同,我們可以參考nginx.conf然後修改掛載我們需要載入的virtual   host相關設定,讓openresty可以Load   Balance我們所要提供的服務。 注意事項 由於此模組會需要在公網上認證該Domain的設定,因此,我們必須要讓DNS可以指定到一個可以聯繫到該主機的地方... 換句話說... 如果想要用127.0.0.1測試就會有問題... 因為DNS反解後外部仍無法聯繫到該IP...

使用 minikube 輕鬆上手 kubernetes

安裝minikube macOS只需要透過brew即可快速安裝... brew cask install minikube Linux環境可以直接下載執行檔,放到環境變數可以吃到的路徑即可... curl -Lo minikube https: / /storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && \ chmod +x minikube && \ sudo mv minikube /usr/local/bin/ Windows的下載網址如下: https://storage.googleapis.com/minikube/releases/latest/minikube-windows-amd64.exe 如果您的kubectl尚未安裝,可以直接使用google cloud sdk來安裝: curl https://sdk.cloud.google.com | bash gcloud components install kubectl 安裝完成後,原則上minikube會在本地端加入minikube的k8s context,我們可以透過下面指令來使用該context… kubectl config use - context minikube 然後,可檢查一下您的minikube node是否正常運作.... $ kubectl get node -o wide NAME       STATUS    AGE       VERSION   EXTERNAL- IP   OS-IMAGE            KERNEL-VERSION minikube   Ready  ...