else 後面可以接很多東西.. 根據 ECMAScript 2020 的定義: 以下程式碼合法: else 後面接 for const a = [1,2,3] if (!Array.isArray(a)) { console.log('...'); // do something...
11/3/2020:::warning 此篇文章討論的 Docker 為 Linux Container,有些內容可能不適用於 Windows Container 技術。 ::: 為什麼 Docker for Mac 會遇到硬碟空間不足的問題? Docker 的技術是基於 Linux Namespaces 與 cgroup 等功能做邏輯隔離,並在隔離的環境中透過同一個 Linux Kernel 執行程式,因此要執行 Docker 的首要條件就是需要有執行 Linux distribution 的機器。 而 Docker 公司為了普及 Docker 技術,推出了在各個主流開發平台上 (Windows, macOS) 透過運行 Linux 虛擬機的方式來滿足跨平台執行 Docker 的需求。 Docker for Mac 的原理是在 macOS 上使用 xhyve 執行虛擬機 ( xhyve 是透過 macOS 原生的虛擬化技術 Hypervisor.framework 執行虛擬機的軟體)。而虛擬機的作業系統是使用 Docker 推出的 Linux Kit 產生的作業系統。
2/14/2020Context 在 Kubernetes 中刪除 Namespae 的操作通常在 5 分鐘內會完成 (如果 namespace 中沒有太多 resources 的話),但有時候會發生超過 1 小時 Namespace 的狀態還在 Terminating 的狀態(如下圖),查看 GitHub 中相關的 Issue [^k8s-issue-1],發現原因可能就是 Kubernetes 刪除 Namespace 的流程出了問題,導致沒有正確執行 finalizer。 這時可以使用 kubectl get namespaces <NAMESPACE> -o yaml 查看該 namespace 中的 finalizers 是否有設定東西,通常都是這個引起 namespace 無法正常刪除。 Solution 遇到這件事,可以手動修改 finalizers,將 finalizers 刪除,但刪除 finalizers 沒辦法透過 kubectl edit 指令完成,也無法透過 kubectl apply apply 新的 resource configurations。 根據 issue 內的說明,可以透過 kubernetes 的 Update finalize of a Namespace API 修改 finalizers 的值。
2/14/2020本文主要介紹在使用多個網路介面時,一張路由表可能無法做到複雜的封包路由功能,透過多重路由表搭配路由規則、iptables,讓封包使用不同的路由表,使用不同的介面轉送。 [TOC] Context 圖1:環境拓樸 如上圖,web server上有兩個網路介面,eth0連接內部私人網路;eth1直接連接 internet 提供對外存取服務。因為公司 IT 政策的關係,web server 自身產生的任何流量(系統更新、套件下載等...)都必須經過內部網路的邊界伺服器( Edge Router ),而 eth1 則是作為專線,用來服務由外對內的網頁伺服器流量。以此做到讓服務網路與管理網路分離。
2/14/2020or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up