發表文章

目前顯示的是有「UCP」標籤的文章

安裝 Docker EE UCP v3.x

安裝 Docker EE UCP v3.x 的時候,跟之前介紹的 UCP v2.x 安裝方法類似。但需要注意 Pod IP 地址的設定。 預設情況下,在 Docker EE 平台 Kubernetes pod 的 CIDR 範圍是 192.168.0.0/16 如果節點本身 IP 地址與上述 192.168.0.0/16 範圍有重覆,則在安裝 UCP 的時候必須加上參數  --pod-cidr 來另外指定,否則無法順利安裝 。例如下面範例: $ docker run -it \     --rm --name ucp \          -v /var/run/docker.sock:/var/run/docker.sock \    docker/ucp:3.0.2 install --host-address 192.168.0.51 \    --pod-cidr 10.10.0.0/16 --interactive -D 節點本身 IP 地址是  192.168.0.51 加上參數 --pod-cidr 來另外指定  pod 的 CIDR 範圍在  10.10.0.0/16

UCP Dashboard Shows 'No Data'?

圖片
之前曾經處理過一個關於容器平台監控儀表板的問題,寫在這邊作爲記錄並分享。 具體問題狀況:在一個 UCP 叢集環境下,共安裝設定了 10 個節點,包含 UCP manager 以及 UCP worker,而且爲了支持 HA,設定有 3 個 UCP manager,確保高可用性,作爲監控管理用途。所使用的 UCP 版本是 v3.1.1. 運行經過一段時間,其中一個 UCP manager 節點的儀表板無 metrics 資料顯示,如下圖標示: 其他兩個 UCP manager 節點儀表板顯示正常。 另外通過 docker ps 命令檢查每個節點的 ucp containers 狀態, 發現 ucp proxy 等 agents 用途的 containers 狀態是健康的,節點之間的 TLS 連線應不是問題, 用 docker logs 命令檢查 UCP controller 的日誌內容,如下截圖, 試着以 docker restart 命令重新啓動 UCP controller containers ,但是問題仍然存在沒有解決。 接下來試着看 UCP metrics containers 的情況,在 UCP v3.1.1 由 ucp-metrics 來負責, 這部分實際上是以 Prometheus 為功能基礎來輔助達到 UCP 儀表板監控功能, 在 UCP v3.1.1 的 Prometheus 監控是以 Kubernetes deployment 的方式來佈署, 定義成一個 daemonset 指定運行在 Docker EE 容器平台上的每個 UCP manager 節點。 Prometheus 使用 TSDB 格式,通過 volume 機制在本地端儲存 metrics 資料,對應的本地路徑為 /var/lib/docker/volumes/ucp-metrics-data/_data/wal/ 這路徑保存時間序列的 metrics 資料庫。如果這個路徑有問題,則需要重建。 註:WAL 的全名是 Write Ahead Log. 通過下面命令重設 ucp-metrics (註:要先設定好 ucp bundles): $ kubectl -n kube-system delete da...

在 RHEL / CentOS 系統安裝 UCP 3.1.x 碰到的 SELinux 問題

之前在客戶端協助運維時,突然碰到的一個新問題,雖然目前來看時間點已過,可能最新版不會有這樣的問題了,在這做個記錄,未來有類似情況可以參考,同時作為前面安裝 UCP 一文的補充。 客戶端的作業系統是 RHEL 7.5 , 所要安裝的 UCP 版本是 3.1.8 ,  執行下面命令的時候... [root@ucp]# docker run --name ucp --rm -it -v /var/run/docker.sock:/var/run/docker.sock docker/ucp:3.1.8 install --host-address [node-ip-addr] --interactive Unable to find image 'docker/ucp:3.1.8' locally 3.1.8: Pulling from docker/ucp c87736221ed0: Pull complete 831158f6c3f0: Pull complete 7eaca31ce090: Pull complete Digest: sha256:048414d9d3fd5cc93b3a762582c2cea73b94ef5449072b16231f13b9e355c1e4 Status: Downloaded newer image for docker/ucp:3.1.8 docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:430: container init caused \"write /proc/self/attr/keycreate: permission denied\"": unknown. 出現如上列紅字標示的錯誤。 看起來是 UCP 3.1.x 安裝程式與當前系統上容器運行環境(container runtime)的 SELinux policy 設定不兼容。 經過測試發現有幾個解決方法。 首先依照經驗法則,可以想到先能做的...

Layer 7 Routing

圖片
在 Docker EE UCP 3.x 有一個 L7 Routing (Interlock) 功能可以輔助佈署在 Docker Swarm 平台的 web 應用與其客戶端保持固定的 session 。 下面例子是在已建置好的 Docker EE (引擎版本 18.09 )的叢集環境中進行,在叢集中也安裝了 UCP ,版本 3.1.1 ,並採用了配置 cookie 的方式來達成 Session Persistence,其他配置方法將另文描述。使用Cookie的方式需要指定Web應用裡用到的Cookie的名字。需要Web應用來配合。 首先,在 UCP 啟動 L7 Routing (Interlock): 登入 UCP ,左邊菜單 Admin Settings > Layer 7 Routing > Enable Layer 7 Routing 預設是關閉狀態,點選啟用 Layer 7 Routing. 之後,在所要佈署的微服務應用的 compose yaml 文件中,加入3個 labels, 具體寫法可以參考下面 compose yaml 片段: # a sample of compose yaml for session persistence version: 3.3 services: web1: image: web1 labels: com.docker.lb.hosts: "app.local" com.docker.lb.port: "8000" com.docker.lb.sticky_session_cookie: "session" 其中, com.docker.lb.hosts 是佈署在平台上的應用 domain name 可用其中一個實體節點 domain name 代替; com.docker.lb.port 是這個微服務應用程式所發布服務的 port ; com.docker.lb.sticky_session_cookie 這裡填Web應用裡預定義Cookie的名字,使得建立 service 的同時也建立 cookie, 對於同一個來源其後續的請求都會固定在同一個容器實體來回應; 使...

安裝 Docker EE UCP v2.x

這裡說明 Internet 是可用的情況進行 Docker EE UCP v2.x 安裝, 若是可以使用 proxy 連接,請先做作業系統關於proxy的設定。 Docker引擎版本:17.06 UCP版本:2.2.4 請先確認合適的Docker引擎已經安裝在主機上。 下載 UCP $ docker pull docker/ucp:2.2.4 確認 UCP 已經在本地主機上 $ docker image ls | grep ucp 運行如下命令開始安裝: $ docker container run --rm -it --name ucp \ -v /var/run/docker.sock:/var/run/docker.sock \ docker/ucp:2.2.4 install \ --host-address --interactive 在這裡: <host-ip-addr> 是安裝有 Docker 引擎的主機的 IP 地址 --interactive     以互動模式來進行UCP安裝 輸入上述命令之後,會開始下載UCP其他必要的元件,並且以互動模式來進行UCP安裝,過程中會要求輸入 SAN,以及UCP所需的username 以及 password. 安裝好後,開啟瀏覽器(建議用Firefox或Google Chrome)打開網址 https://<host-ip-addr> 之後登入安裝時所設定的 username 以及 password. 載入 license,即可看到UCP dashboard畫面 下面略述在安裝過程中可能遇到的幾個常見問題以及其可能的解決方法: (1) 如果看到如下 Error 訊息: FATA[0040] the following required ports are blocked on your host: 12380, 12376, 12384, 12387, 12381, 12382, 12383, 12379, 443, 2376, 12385, 12386. Check your firewall settings 可能原因與解決方法:主要可能是防火牆設定不正確,建議...

這個網誌中的熱門文章

Docker 環境下的 Proxy 配置