搜尋

搜尋結果

Swarm mode 上線 5 - load balancer | 還有那些事該考量?
科技新知
MacauYeah・2024-11-18

前面介紹了 ingress network ,亦介紹了 proxy gateway 。能做到的基本都做到了,再來就是考量安全性的問題。因為加了 proxy gateway ,前述的例子是所有 service ,都放在同一個 yaml 檔中。好處是,所有相關的東西存放在同一個檔中, gateway ,背後的 service 都一眼看到。但壞處就是有其中一個 service 更新,都要改那個 yaml 檔。更大的問題是, stack deploy 的指令,不單只更新其中一個 service ,就連其他 service 都會自動取得最新 image 而 redeploy 。 對於一個緊密的系統來講,同步更新可能不是大問題。但對於一些預定排程發佈的系統可不能這樣因為副作用而更新了。如果你也有這樣的分開管理需求,可以參考下面做法,把 gateway service 及 upstream service 放在不同的檔案中,然後經過 external network把所有 service 串連起來。 # nginx-stack.yaml, docker stack deploy -c nginx-stack.yaml nginx services: http-gateway: image: http-gateway ports: - 8080:8080 deploy: replicas: 1 update_config: delay: 10s restart_policy: condition: on-failure # manager-stack.yaml services: managerhttp: image: bretfisher/httpenv networks: - nginx_default - default deploy: replicas: 3 update_config: delay: 10s restart_policy: condition: on-failure placement: constraints: - node.labels.zone==manager networks: nginx_default: external: true # dmz-stack.yaml services: dmzhttp: image: bretfisher/httpenv networks: - nginx_default - default deploy: replicas: 2 update_config: delay: 10s restart_policy: condition: on-failure placement: constraints: - node.labels.zone==dmz networks: nginx_default: external: true 這樣,不同 service 的維護人員,就可以獨自控制自己的檔案。在第一次發佈時,確認 nginx-stack.yaml 先行發佈就可以了。對應的發佈指令是docker stack deploy -c nginx-stack.yaml nginx,它會自動産生一個 nginx_default (即 stack名字_default )的網絡。之後其他service,就可以經networks的設定找到它了。 services: YOUR_SERVICE: networks: - nginx_default - default networks: nginx_default: external: true 上述即使分離檔案,在安全性考量時還是有一個問題,就是 ingress network 的問題。試想一下,dmzhttp (Demilitarized Zone)原本被設定的原因,就是想限制某些訪問只能一些可以公開的服務。但因為經過 ingress network 之後,它們會在所有機器上開放這些 port。那就是,以下面的例子來講,若 dmzhttp 是公開的服務, intrahttp 是內部服務,即使用 intrahttp 使用不同的port 8889。但一經 swarm mode 預設的 ingress network ,在node.labels.zone==dmz的那些節點,還是可以訪問到 intrahttp 。 services: dmzhttp: image: bretfisher/httpenv ports: - 8888:8888 deploy: replicas: 2 update_config: delay: 10s restart_policy: condition: on-failure placement: constraints: - node.labels.zone==dmz intrahttp: image: bretfisher/httpenv ports: - 8889:8888 deploy: replicas: 3 update_config: delay: 10s restart_policy: condition: on-failure placement: constraints: - node.labels.zone==intra 我們前述介紹的 proxy gateway ,其實已經有一定程度可以解決這個問題。因為 proxy gateway 是根據 http 協定中的 host header 去做分流。在邊界網絡進來的「合法」訪問,道理上會好好地經引導到我們的 dmzhttp 。不過網路的邪惡可容小看, proxy gateway 也會有被騙的一日。有特定能力的攻擊者,只需找到目標域名,還是可以接觸到 intrahttp 。 若要做進一步隔離,在這種情況下,我們可以在 dmz , intra 機器中各設定一套 swarm ,完全獨立,這是最安全的做法。但這樣做的管理成本就會變高,因為兩個網段都會有自己的 manager 節點,而且在 dmz 網段的 manager 節點也有被攻擊的可能。 若我們回到單一 swarm 的方向,可以修改各個 service 中的 port 和 deploy 。利用 post mode 中的「host」,配合 deploy mode 中的「global」,完全跳開 ingress network。 services: dmzhttp: image: nginx ports: - target: 80 published: 8888 mode: host deploy: mode: global update_config: delay: 1s restart_policy: condition: any placement: constraints: - node.labels.zone==dmz intrahttp: image: bretfisher/httpenv ports: - target: 8888 published: 8888 mode: host deploy: mode: global update_config: delay: 10s restart_policy: condition: on-failure placement: constraints: - node.labels.zone==intra 上面的例子中, dmzhttp 會在所有 dmz 的機器中,每個節點只運行一份服務,而且直接使用該機的 8888 port ,外面不會再有 ingress network 的 存在。同樣地,intrahttp 會在 intra 的所有節點,運行一份服務,佔用它們的8888 。這兩個服務,即使使用一個 port ,swarm 也不會說有任何問題。因為它們不會經 ingress network 搶佔其他人的 8888。 可能會有讀者問,如果 host mode 這麼安全,為什麼預設會是 ingress network,那我們就要先了理清 ingress network 與 host mode 有有什麼分別?假設我們只運行一個service,它佔用8888。 功能ingress modehost mode replicas 數 同一個 service replicas 為任意數量,什至比節點的數目多 因為有 port 限制,每個節點最多只能運行一份 Virtual IP Virtual IP 任意在節點中跳轉也可以,因為 ingress 會自動找到對應的 service 所在的節點 Virtual IP必需要與 service 所在節點綁定,其他節點訪問不到 load balance 有 沒有 host mode 就像我們傳統在各自的節點上自行佈署自己的程序,各個節點只有一份。所以不會有自動 load balance 的效果,如果客戶端訪問固定的IP,就會得到是固定的接器接受請求。我們有需要,就要在前面加一個 Proxy Gateway (或 HA proxy )。 Virtual IP 也一樣, host mode 下需要好好地自動跟著 service 的生命期,不過幸運的是, Docker 預設己經有自動重啟 service 功能,即前文中的 restart_policy ,它在 host mode 下也適用。如果大家有配合 deploy 中的 global mode , Virtual IP 的並沒有實際變動。但如果沒有 global mode ,就要再想想辦法了。 最後考慮 load balance 的問題,如果進入點的 service 的真的不太消耗資源,沒有 load balance 也是可以的 ,但若超負荷,就必需要自建 proxy gateway 。經過進入點後,若我有背後的 service 就沒有所謂的 ingress 和 host mode 選擇。

錢到家,你的錢, 到家沒有?
宗教玄學
熊神進・2023-01-29

#乾隆道光嘉慶錢幣# (熊神進, 房屋佈置專家, 合法執業30多年) “埋怨不是用來解決問題”我跟一位年青人說。 這位年青人在2019年做自媒體, 做了一年, 新冠疾情開始, 他的公司出了財政問題, 他被解僱了, 之後, 他跟朋友合作做快遞, 因為客戶投訴過多, 他們被終止合約。 年青人的自信一次又一次被打破, 早幾天我在「珠海橫琴」工作時看到他, 他轉行做房地產仲介, 還叫客戶請一套「錢到家」掛玄關位置。 「錢到家」在南方比較普及, 許多南方人都喜歡在屋門前掛一些古銅錢, 例如五帝錢、龍錢劍等 , 其中「錢到家」古錢幣是最經濟實惠的。 風水師傅說人無橫財不富,馬無野草不肥,這裡說的“橫財”,“野草”是一個比喻法,意思就是說我們除了勤奮打工之外,亦要找點意外之財。我們明白群眾心理,一直以來都建議大家把「錢到家旺財古錢」掛在門口位置。 不是每枚古銅錢都能夠長時間放在家裡, 有些古錢是來歷不明,有些是有邪氣,風水學家常常說家裡不宜擺放來歷不明的法器。今天為大家介紹的,是筆者收藏三十多年的「錢到家旺財古錢」,這套古錢外相粗糙, 沒有觀嘗價值,只能傳世及做風水之用。 清朝是我國最後一個朝代,“乾隆”盛世,“道光”和“嘉慶”承接旺氣,富無三代,自此以後,國力衰弱,筆者看准玄機,遍尋各地吉祥法寶,其中收集多枚北京的盛世古錢,這些古錢是來自北京某富商家人贈予給我, 他們有一個條件, 就是我要把這些結緣後把金錢用在善事上。 感恩富商給我這些行善機會,謝謝。 “財運”是俗稱, 在風水學上, 我們叫“正能量”。我精心挑選了三個旺盛的銅板,它們是乾隆、道光、嘉慶。“乾”取其普通話諧音“錢”,“道”,“到”的音;“嘉”,“家”的音,我把三個銅板用一個黃色吉祥結連在一起,這就是“錢到家”,非常吉利。 我們都是人手工藝, 一個一個錢板串起來。有一點要說明, 風水結是分五行, 五行的結是用來招財, 跟你們平常見的工藝結是完全不同, 另外, 這些不是工藝品, 我們開光時是放在壇上, 有爐灰, 有玄粉, 有符水, 如果你追求完美, 請不要下訂單。 (一) 什麼人適宜使用這套古錢? 答:下列情形之一的人都合適: 1)鼻樑下蹋的男女。 2)八字財星弱的男女。 3)想改善財運的人,尤其是近年來財運不好的人。 4) 家裡風水不好的人。 (二)怎樣使用這套古錢? 答:我們有少少要求: 1)掛在每年的財位,今年財位在西方/北方。 2)放在包包裡面。 3)放在收銀台,保險櫃,裡面可以。 4)做網店,炒股的人,放在電腦旁。 (三) 這套古錢真的嗎? 答:我們這些古錢是北京一位老爺爺跟佛結緣,曯咐筆者好好處理這些身外物,並要求筆者把金錢用在善事上,筆者也是佛教子弟,不受惑,不取巧,不收開光費,二套以上同一收件位址,不收運費,這是佛教喜舍的慈悲。 筆者不是古錢專家, 沒有資格說這幾個銅板是不是古錢, 但有一點可以肯定的, 富商贈予的古錢, 筆者一直用來供養五路財神, 銅板上留有一股貢香的香味。 (四) 我們可以自己開光這套古錢嗎? 答:開光是一種儀軌,不是專利,你是可以自己開光,但必須懂得一些儀軌,同樣,你亦可以把它送去寺廟交師父為你服務,不要客氣。 如果你想簡約一些,老師免費為你的古錢幣潔淨,開光,這是一份功德,不要客氣。 (五) 我需要提供什麼資料? 答:如果你需要我為你做開光服務, 請把資料給我: 1)使用者姓名。 2)出生資料,新歷年月日時間。 錢到家,今天我們就把錢接回家, 掛在財位上, 甚至掛在大門入都可以,其實是非常經濟實惠, 也是很有靈光的古錢幣。 筆者希望每位信士收到這套古錢後能力改善財運, 把經濟富裕起來。 (圖片只是一個展示品,銅板每個外相不同,偶有字體不清,這是可以理解,由於坊間充斥仿古品,我們不接受退貨退款,請諒解)。 公共微信: macaumasterxiong 私人微信: macaumickey

羊肉漢堡必推!澳門的土耳其菜:土耳其烤肉之王
澳城餐飲
OHChance 旅遊誌・2020-04-21

疫情下沒得去旅行,惟有舌頭去旅行。今天去:土耳其上圖不是土耳其,是餐廳附近的 "俊秀里",有點日本 "XX通" 的感覺。 餐廳位於關前後街,屬於澳門的老街之一。在地圖搜尋 "泉康樓" 就會找到。”土耳其烤肉之王“ 在澳門好像都有好幾家,在泉康樓這家是最新開的。 詳細地址:澳門大關斜巷8-10號泉康樓地下A 土耳其菜大家想到的一定是旋轉烤肉,這家當然不會缺席。不過這家的烤雞肉有點乾。 這家店最有名的(也是店主推薦)是羊肉漢堡,寫文章時正在澳覓 app 上做優惠,配薯條及飲品48元,很化算。不想自己親自下廚又想找一家麥當勞的替代品,這家最合適不過。 羊肉漢堡確是值得一試,烤到微焦的羊肉漢堡扒肉汁依然豐富、香而不酥;配上美奶滋、蕃茄醬、生菜、蕃茄片非常清爽。 另外店內還有土耳其特色酸奶及大米布丁。土耳其酸奶(Aryan)是微鹹的,大口吃完烤肉正好解膩! 大米布丁Q彈,而且還吃到有點糯米的感覺,灑滿肉桂粉香氣迷人,甜度適中很合做飯後甜品。 不妨澳覓買張優惠券落個柯打,等餐時往上走幾步順便去俊秀里打個卡。 下載 OHChance 手機 APP, 特價資訊直送你手!   === 想搵平機票去玩,即上 OH!Chance!澳燦旅行資訊 https://ohchance.info/ 去日本旅行買咩 JR Pass好?即上 OH!Note!小燦的旅行筆記做功課 https://ohnote.info/ 唔知間航空公司好唔好坐?馬上 Subscribe OH Chance Youtube 睇睇佢:https://youtube.com/c/OHChanceTravel 睇埋 Facebook 專頁 https://fb.com/ohchance 第一時間獲得最新旅遊資訊!