Asus B9400 筆電 SSD 加強散熱

很久沒有在這 PO 文了,一方面是因為工作忙,事情也越來越複雜,要整理得完 PO 上來需要另外花上一些心力,另外一方面是這次的心得相對簡單,是自己上班用的電腦維修心得,所以便 PO 出來讓大家參考一下。

雖然我不太想用網路上的「子龍任務」來形容這次維修的過程,但是實際上這次我遇到的問題的確是叫修了兩次之後… 再加上我自己 DIY 一次之後,現在看起來才沒啥問題,所以在這邊分享出來,也許有人遇到類似的問題時可以試著自己處理看看,當然有保固有時間的話還是請找原廠協助。

這次的故事要從我的 B9400 無法開機說起,就在某天 WFH 的早上,我準備要開電腦上班時,發現我的筆電無法開機,直接進了 BIOS 然後顯示無硬碟,當時嚇了我一大跳,因為裡頭的工作資料有好一陣子沒備份了,但幸好經過一些無厘頭的步驟後 (拔電源、D 面用手壓一壓…),就恢復正常了,之後這樣子的經驗又發生幾次,由於我這台 B9400 是出廠就設定成 1TB*2 的 RAID 0 機種,所以我自己嘗試著 Google 之後發現可以下載一個所謂的 Intel Optane Memory 與儲存管理 的程式來檢查是不是有問題。

開機不成的畫面我其實沒有任何記錄,應該是每次都是上班時發生這個問題,我要不然是急著想上班,要不然就是本著工程師的性格:再試著開開看重現一下問題所在… 然後就成功了,所以一直到我用了 Intel 的程式之後,才發現這程式不時的會跳警告訊息出來。

以前還流行 DIY PC 時,知道硬碟有這個 SMART 自我偵測資訊可以看,但是這個 Intel 的程式只會顯示狀況正常或異常,不會顯示 SMART 裡的各種數值,每次 Windows 出現警告訊息時打開這個程式來看就顯示正常,只有在 Windows 的事件檢視器看得到和上圖一樣的錯誤訊息,也不清楚具體是哪裡出問題了。

拿出我自己家裡電腦裡封存已久的 CrystalDiskinfo 想要看一下 SMART 數值時,卻想到以前在 PC 上也玩過所謂的 Intel 晶片組的 RAID 0,這麼做的時候 SMART 資訊是看不到的,實際上跑了 CrystalDiskinfo 也說找不到硬碟。(雖然事後才發現是我的軟體版本和腦袋都太舊的關係,現在各種新的軟體對於晶片組的 RAID 0 資訊偵測已經沒有問題了。)

然後,我就開始我的叫修過程了,讓人驚喜的一點是,Asus 竟然也有比擬 Dell 的到府維修服務,到線上網頁報修之後,就是等維修人員和你約時間來修理了,這點和 Dell 的體驗有點類似,當然 Dell 特有的完美保固(Asus 也有提供,但似乎有自負額) 和 Keep your HDD 這兩點 Asus 並沒有完美複製,所以為了避免檢修時發現是要換硬碟而造成公司資料外洩,我就得提前幾天先把系統資料備份起來然後把硬碟給清乾淨,而 Dell 的 Keep your HDD 就可以讓我備份資料就好,因為就算是換硬碟也不會把舊的收走,也就不會有資料外洩的問題。

Asus 的到場維修人員看起來還蠻專業且有禮貌,不知道是不是和 Dell 一樣都是外包的,第一位來的先生幫我用 USB 開機然後拿軟體測試了兩顆 SSD,認定是其中一顆出了問題所以需要更換,由於我正在上班留工程師自己在客廳維修,實際上我並沒有觀察到他的維修過程,等下班後我很開心的倒回我的資料後… 還原後第一次開機又發生 SSD 失蹤進入 BIOS 的狀況,雖然又是一陣拔電源按一下 D 面的莫名操作之後回復了正常,但是這次在 Intel 程式裡竟然可以看到另外一顆沒換到的 SSD 出現問題,當時其實我心裡想這大概就是子龍任務了,於是馬上上網再申請第二次到府維修,這時候我有發現一個小插曲,原本我出廠配置的應該是 Samsung 的 PM981A 1TB SSD * 2,上次更換其中一顆之後變成更好的 PM9A1,PCIe 連結速度從 4000MB/s 變成了 8000MB/s,心理想說這果然是網路上所謂的子龍任務 – 有時會免得獲得免費升級的服務。

第二次的維修可能是不用待料的關係,申請後第三個工作天就到府了,來的人感覺是比較資深的大哥,和第一次的工程師不是同一位,雖然我堅持「應該是」另外一顆 SSD 有問題,因為我有截圖給工程師看,但由於工程師把 RAID 0 解開後用他的軟體測試並給我看 SMART 資訊都沒有問題,但是工程師有帶疑似上次一起申請的主板來,在我的堅持下還是請他幫我給換上,因為我已經等這個維修用了兩週的公司備用筆電,很希望趕快解決掉不然覺得真的挺浪費時間,所以我這次的維修拿了兩張

然而好景不常,這次資料倒回去之後還是發生了 Windows 警告訊息,但我這次不想要先跑子龍任務了,來了也修不好的話還更浪費我自己的時間,想說自己做個 USB開機碟跑 SMART 測試看看,自己先找出病根,然後再請工程師到府服務這樣子快一點,但是這時候我下載了新版的 HWiNFO 和 CrystalDiskinfo 軟體,卻發現這兩個軟體都可以正常無誤的在 RAID 0 的 Windows 下執行,然後就被我發現了一個事實:SSD 的控制器溫度很高,而且這顆 83°C 的是 Samsung 980 的 OEM 版本 PM981A,網路上可以查到 980 這顆硬碟有 84°C 問題的一些英文的分享,由於我的 HWiNFO 是設定成 6 秒更新一次,所以我自己判斷這可能是主要的原因。

為了驗證這個問題,一開始我拿了個小風扇墊在機器底下直吹然後故意跑一些軟體來壓力測試,也一邊開著 HWiNFO 紀錄最高溫度,並觀察 Windows 有沒有再出現警告訊息,結果是證明我的假設正確,開著風扇直吹的機器就幾乎不會再出現警告訊息,沒開風扇的時候不時的就會出現警告訊息並且在 HWiNFO 中會記錄到超過 80°C 的溫度。

原本想要再跑子龍任務的我猶豫了一下,正想要乾脆買片筆電散熱風扇架的配件來解決這個問題,但在上網看了一些網友關於 SSD 散熱的心得之後,發現有些人會建議只要簡單的在 SSD 和 D 面機殼之間貼上一片導熱貼,就可以順利的把熱量導入 D 面去,更何況 B9400 的 D 面摸起來是金屬的,之前看網友開箱時也有提到機器 D 殼上是有貼石墨烯這種聽來高科技的東西,所以就上網買了塊這個:

我有事先量了一下,所以買了 2.0MM 的,沒想到這樣子小小一片也要 310 塊錢,於是趁假日時動手來貼,以下是貼之前和貼之後的比較,我的手實在不太巧,剪個導熱貼也剪得歪歪的:

貼完之後做了個簡單測試,看起來似乎有效:

今天週一上班開了一整天的會,我也刻意的一直把 HWiNFO 開著紀錄,有 WFH 的朋友們一定都有類似的經驗:視訊會議軟體都很耗電且吃系統資源,不管是 Windows 或是 Macbook M1,尤其是需要開著視訊的時候,一整天下來,沒有用其他散熱風扇吹,狀況是一切正常,Windows 整天也沒有跳警告了:

其實我一直到現在都還不知道當初 SSD 消失的原因是什麼,是不是和溫度有直接的關係也無從證明,但是現在至少我可以把惱人的 Windows 警告給消除了,也不再那麼怕突然哪一天上班時電腦又無法開機,讓 Asus 工程師跑了兩次子龍任務後加上自己 DIY 的結果也算是有個完美的結局。最後有發現網友的影片提到 Samsung 的 SSD 會有過熱降速的問題,看來貼這個導熱貼還是有其價值的。

最後還是要靠北一下這台的散熱設計了,之前還在公司辦公室上班時,大家在同一個會議室開會就只會聽到我的機器風扇的高頻聲,這讓我想到中正評測裡的頻道主最討厭的散熱設計是:散熱不好,轉速來頂,我自己也是寧願這筆電多個 100~200 公克無所謂,但風扇別那麼吵,電池如果能更多一點也更好,因為現在視訊會議軟體實在太耗電了。要不然就是這機器也別開個 i7 + 32GB RAM + 2TB RAID 0 的規格了,一副自己帶出門可以輕薄有面子、在家裡可以高效能有裡子的樣子,結果風扇一轉就讓人卻之不恭了。

不過我自己其實蠻喜歡這次的 B9400 的外型設計,低調、輕薄、拿起來感覺穩固、用了一年多的外殼還是同剛買來的一樣… 不顯眼但沒掉漆變色之類的變醜,如同我以往用過的 Lenovo Thinkpad 或 Dell Latitude 一樣,就算是拿去咖啡廳裝文青,這個外型也沒有真的輸 Macbook 太多。而且這次的到府維修經驗本身讓我挺驚艷的,但如果能加上 Keep your HDD 服務,拿掉無謂的 RAID 0 配置留一棵 SSD 但價格不變的話,就會讓我覺得「更商務」一點。最後還是很肯定 Asus 的進步,希望將來他們能在商務領域上更有斬獲。

自己做 Wifi Porter – 碰一下就連 Wifi

幾個月前我們家 K 大去了一趟人家公司參觀,主要的目的是什麼我也忘了,但回來後他卻深深的被人家家裡那個碰一下就可以連 Wifi 的小玩意給吸引到了。

還記得他很興奮的貼了個那個小玩意的連結,還順便嘴了一下什麼:這麼簡單的東西也可以賣到上千台幣之類的,果然設計和創意無價云云,所以我們就從善如雲,一陣子之後就做了個這樣子的東西出來:

這個… 功能性方面是有了,但是用這個 QR code 嘛,感受上不是那麼高科技,單純貼一張紙在布告欄上面和人家 Wifi Porter 比較起來,就沒那麼優雅。K 大曾經說過一句名言:如果你勉強買了支勞力士,戴手上還要擔心刮壞、擔心掉了之類的,就乾脆別戴了,你看看人家戴著勞就是那麼雲淡風輕,理所當然的自在優雅,等你有這個水準再來。所以嘍,既然我們想東施效顰,就得裝的十足像,所以就來看看這個 Wifi NFC 該怎麼自己做。

首先當然是要先來買個 NFC 的「標籤」,其實這東西在網路上很多也很便宜,有做成標籤狀的,也有卡片外型的,或是像停車場用的那種硬幣類的,族繁不及備載,但是對我這個門外漢來說,到底哪一種是可以用的?有沒有相容性問題?這些東西雖然便宜但是也都是錢啊,想著想著,就想到大家身邊不都有這個東西:

實在是拜科技進步之賜,從 2016 年甚至更早之前,iThome 就開始用這類 RFID 的標籤來作人數統計用,而且我印象很深的是,會場的工作人員就是拿著手機在做感應的,以我們公司參加研討會的頻率和人次,這東西簡直可以說是取之不盡啊,不拿來廢物利用一下實在對不起自己。

接著隨便在 Google Play 上用 NFC Tool 這個關鍵字去搜尋了一下,發現可以用的 App 還挺多的,但看起來大家第一個步驟都是要先把卡片上的資料抹去,當然我是不求甚解,找了幾個 App 之後,發現大部分的 App 都能讀,但只有這個 NFC Tools 可以把卡片上的資料抹掉,又是個免費軟體,所以就拿來用了,按了 Erase tag 按鍵之後,再去碰一下標籤就清除了:

然後用這個說是 Android 7 之後就內建的功能,把你要寫入的 Wifi 基地台給寫進去,密碼就再手動打一次 Wifi 密碼來確認,就完成寫入動作了:

接著就拿手機來試驗了,看起來這個 NFC 標籤在有 NFC 感應功能的 Android 手機上可以正常運作無誤,但是在 Apple 手機上就不支援直接感應,貌似因為安全性的緣故,iPhone 需要先開啟一個能啟用 NFC 功能的 App 才能有碰一下 Wifi 的效果。

最後沒想到原先以為很難的技術問題(因為人家賣上千台幣),真正做起來卻是那麼簡單,完全不用去了解複雜的技術細節或規格,只要手機按一按然就可以生出來了。當然除了技術上的實現之外,怎麼把外觀做得美觀的問題還是讓人頭大,總不能在公司各處擺著 iThome 的名牌讓人刷也自稱優雅吧?所以只能轉交給我們部門的首席設計師 R 姐來研究一下了,看能不能搞出一個優雅又美觀的 Wifi 感應點出來,就像 Wifi Porter 一樣實用又好看。

Dell Latitude 7400 開箱

是的,今天要來開箱的是 Dell Latitude 系列中的最新款 – 7400 ,其實這台筆電的資訊早在年初的 CES 中就已經揭露,但是他就偏偏取了個 7400 這個名字,身為一直在用 Latitude 系列的使用者,應該早就習慣了將 7440 -> 7450 -> 7470 -> 7480 -> 7490… 這樣子的命名方式稱之為 7400 系列,表示這是 Latitude 的 14 吋 Ultrabook,所以當初一看到 CES 相關報導裡提到 7400 這個名詞時,心裡就自動覺得這就是這個系列的代稱,從來沒想到新的 7400 系列不是叫 8400,也不叫 74100,而是就直接命名為 7400。

整體包裝其實沒什麼變化,一貫的簡潔和… 單調。但是不知道為什麼,和小K同事自己買的 New XPS 13 類似的配置,配置的變壓器是上方的 65W 規格,而不是討喜的 XPS 小型化 45W 變壓器。

其實我不太清楚這次採購到的筆電 A 面是 Carbon 版本的,我記得以往需要 Carbon 的 A 面是需要客製的,但不管是怎麼來的,有這個 Carbon 感覺上也替全黑的 7400 帶來一些新鮮感,希望公司裡的使用者們嫌它醜的數目會因此少一點。

拍一下各個角度,這一代的 7400 已經把網路孔拿掉了,和對手的 T490s 算不約而同嗎?但是慶幸的是充電孔沒有任何改變,那表示我們家那些舊的充電器還能繼續派上用場。

值得注意的另一個改變是,這一代的上蓋掀起後可以稍微把筆電給頂起來一些些,相信這樣子的做法是為了散熱的緣故,有常在關心硬體動態的朋友一定有聽說 Intel CPU 的功耗牆限制,什麼輕薄本買 i7 和 i5 不會差多少,因為反正 i7 全速跑一下就會因過熱而降頻跑云云的言論,不過小魯自己不是專業的測試人員,也只是想開開箱而已,相關的測試還是等專業的報導來說明了。不過儘管是做成這種樣式的轉軸,這台機器還是可以 180 度打開,甚至於實際的開闔角度還比 180 度多一些些,但是已經不能像以往一樣「躺平」,由於這個機構的關係,打開之後是躺不平的。

從這一代 7400 開始,也引進了窄邊框,下圖中的 B 面有點拍壞了,但還是看得出來兩側的邊框變窄了許多。

值得讚揚的是,這一代的螢幕配上了實體的鏡頭開關,大家不用再去貼塊醜醜的貼紙來防鏡頭被駭了。

接著重點來了,我們拿了同事的上一代 7490 來比對一下,比較之下窄邊框還是挺有感的,而且可以明顯感覺到 7400 比 7490 小了那麼一點點。不過原本在 7490 上的「小藍點」和搭配的仿滑鼠左右中鍵就消失了,想要在 7400 上找到一點小黑手感的人可能要失望了。

稍微比較一下厚度,發現 7400 的上蓋厚了一些,但是整體厚度沒有太明顯的差異。。

把 7400 和 7490 疊起來看一下,這樣子比較起來真的是小蠻多的。

同事說新的 7400 散熱孔大了一些,所以來個翻面的比較,左邊是 7490,右邊是 7400,目測下的散熱孔的確是大了些。

我們都很好奇,7400 小了那麼多,該不會和 7390 差不多了? (7390 和 7290 尺寸一樣),所以再來一個 7390, 7400 及 7490 的疊疊樂,結果就如下圖了。

最後就量一下重量,1363.6g,和官方宣稱的 1.36kg 很吻合,拿起來也的確是有感變輕了(也許尺寸變小也有些感受上的幫助),看來雖然這些年 Intel 的 CPU 沒啥重大突破,但 Dell 還是有在想辦法擠出一些改變,今年的 7400 算是件有誠意的作品了。

自己換 Dell Latitude E7280 的電池

手上這台 Dell Latitude E7280 用到現在也兩年出頭了,差不多是今年初開始,這台機器就常常從電量 90% 瞬間掉到 5%,然後正在開會的我就得要手忙腳亂的把充電器找出來,聽我們 MIS 說,現在的 Dell 電池已經不像以前那麼耐用了,還記得我上一台 7240 的電池是用到滿三年還是頭好壯壯的還給公司,沒想到這一台機器類似的用法下,電池卻只撐了兩年左右的時間。

雖然當初也是買了完美保固,但仔細一查,才發現完美保固不包含電池的部分,Dell 這系列的電池預設是保固一年,若要延長電池的保固則是要加錢購買…

由於我們公司比較多人用的是 7480 系列,據 MIS 說, 7480 電池去光華商場買一顆約 1800 左右,我上了蝦皮和露天查了一下,最低有看到 1500 新台幣的,但一眼喵過去看到「出貨時間較長」的字眼,讓我又聯想到這可能又是代買淘寶貨的賣家而已,想想還是乾脆自己來淘好了。

上淘寶查了一下,對照自己之前的開箱文,發現原來 7480 的電池 (4 cell) 一樣可以用在我的 7280 上,7280 內部的空間本來就預留可以裝上 3 cell 或 4 cell 的空間,只是我原本是 3 cell 的電池,換上這顆 4 cell 的電池之後可能會重一點,想想重量可能不會差太多,不妨就淘個 4 cell 的來裝裝看。


原本的 3 cell 的零件號碼叫 DJ1J0 ,4 cell 電池的號碼則是 F3YGT,我找的這間賣家賣 RMB 188,淘寶上試算出來是新台幣 871.04,當然還得加上支付寶信用卡手續費、海外刷卡費以及運費,但我是趁 28 號淘寶會員日刷的玉山 Pi 卡,當天免信用卡手續費,Pi 卡回饋 2.5% Pi 幣,加上讓一路發集運特貨送回的運費 (含包裝 0.4kg),大概這顆電池花了 930 左右吧,有不定期去淘寶淘東西的話這樣子算是省了一個禮拜的午餐錢了。

其實東西寄來時我有點吃驚,因為算包的很完整的,紙箱內先有海綿上下包覆,再來還有氣泡帶捲了好幾層,最後才是防靜電袋。從電池上的標示可以看得出來這是 60Wh 的電池,我原本的電池則是 42Wh。可惜的是電池本身的賣相不是很好,不知道是不是因為電池並非賣給一般人的關係,我這顆電池上有個地方出現一點殘膠,上方的黑色護膜也有點像是沒鋪平整的床單。

接著就是拆機換電池了,其實我買電池之前並沒有先拆開來看,所以正在拆的時候我還一度想說會不會電池根本就沒壞,但是蓋子一打開就真相大白了。

右上圖下方的那個電池就是原本的 3 cell,對比上方的新 4 cell 就可以看出膨脹了一些,也難怪會突然掉電了。

由於新的電池並不提供連接用的排線,所以要把原本連接在 3 cell 電池上的排線拆下來使用
4 cell 的新電池裝下後就會佔滿殼內的電池室,這電池需要鎖三顆螺絲,左邊的沒問題,中間的螺絲是由蓋子上鎖下來的,但是右邊的螺絲並沒有附上,我自己是就索性不鎖了,安裝時這個電池下方其實有個小角度要卡入機殼的某個點上,沒卡進去的話外殼會蓋不起來,如果你也遇到類似狀況時千萬別硬是把 D 蓋給鎖上去

裝好電池鎖上 D 蓋之後,接上我的 Type C Dock – WD15,卻發現無法開機,後來就拿了原廠 65W 變壓器出來就好了,不過我當時並沒有繼續去測試看看 WD15 為啥開不起來,也許只是我的誤會而已,因為後來開機後顯示的容量還有 44%,並不是完全沒電的狀況。

倒是這個 44% 開始用 65W 充電器充了好久才跳到 45%,原因不明,打完收工回家後我關機讓它繼續充,目前看起來是充滿 100% 的電了,看起來一切順利,也省了五天的中餐下來。

換上 4 cell 的 7280 到底有多重呢? 1240g,比原本 3 cell 時的 1165g 多了 75g,比當時對比的 New XPS 13 (9350) 的 1227g 多了 13g,查了一下 XPS 13 (9350) 的電池容量應該是 56Wh,這麼看起來 XPS 13 倒是比 3 cell 電池的 7280 重的有道理,也許下次汰換筆電時就可以來考慮視訊鏡頭往上移的 XPS 13 了。

「開箱」訊飛翻譯機

最近公司買了一個新玩具,就是訊飛翻譯機

89f050a5-d2dc-42bf-86fd-96cf4022efdc

主要使用紙盒包裝
外盒算是有點質感的07712bd4-bf0a-48ae-90cd-3beaec968bb3打開外盒裡面也是使用紙盒作保護,算是相當的環保
而且為了避免機器刮傷
還有在與翻譯機接觸的邊緣及底部貼上絨布保護5bffde2b-0af6-463b-844f-e347eee125e4

配件我們可以看到有sim卡退卡針和mirco USB充電線
但缺點就是沒有充電頭6d94d5ff-88bf-435e-b0b3-35b44cba4a7f

這是他的開機畫面4f4914e8-2354-4edd-b3ba-841e7ea97068

很可惜的只有兩種語言介面可以選擇
1.簡體中文
2.英文
5779d0b5-e23a-4571-937f-dba7a85c6107

一開機就有更新要安裝
就讓他更新完再來測試吧6f94005c-16c0-421d-ae96-7888c32af674530e317f-1a7f-46b3-af6f-afef4b7719a1這更新一等就是半個小時
他是有雙向翻譯功能的
當你按著“中文”時,就可以說中文翻譯成他國語言
當你按著“ABC”時說將外國語言翻譯成中文
操作方式是按住按鍵說完話在放開
他就會做翻譯了7edb0f51-7095-4870-8a4f-d74c3b47bcf1

他是個觸碰螢幕
你可以在中文<=>英語的地方點選你要翻譯的語言95d0fc3d-92e0-46f1-89ed-5497ddc9a512

雖然支援的離線翻譯不多
但是大多語言只要你有網路都是可以翻譯的9738ff83-7a26-44c7-8f68-784eebd69edf

最神奇的是他還有人工翻譯的功能
但要註冊會員
它的介面感覺就是android系統
還可以開網頁上網
79f37713-ddae-4742-9a00-85588d3cb745

SOS怕他會真的打出去就沒特別試用了531cbdf3-dc4c-4f70-8054-6865ac26d5b1

也支援飛航模式帶上飛機也沒問題af6516b7-12e6-4c13-863c-bbdcb4676679

終點是他還可以當wifi分享機
出國可以把國外sim卡插在翻譯機做分享了
c509d3b6-2f2a-4b8c-9ea1-9acbdde2f724

重點他居然知道皮卡丘
還頗厲害的啊d8c553ea-2ea6-4f13-add3-7001186698c5

不知道之後跟新會不會有更多的離線語言翻譯a01d8e71-0c15-4946-a745-687a164c78ea

 

優點
1. 支援雙向翻譯
2. 有離線翻譯的功能
3. 可以使用sim卡網路
4. 可當熱點分享
5. 語言種類眾多(幾乎所有語言都有了)
缺點
1. 用語是大陸用語
2. 介面沒有繁體中文
3. 離線語言只有4種

工欲善其事,必先利其器

昨天剛好有機會跑去廠商的機房那邊做一個 POC (Prove Of Concept),雖然也是如莫非定律般的從下午搞到晚上快 11 點才出得來,而且還是個失敗的 POC。但正所謂三人行必有我師,今天還是留下個小驚喜。

驚喜就是,登登登… 這個吸在機櫃上的 LED燈

由於 POC 進行的不是很順利,有些空檔時間我就抓著對方問這個幹什麼的?吸在上面好像很酷,但實際上有什麼用途呢?

這廠商其實也挺妙,看起來他也挺自豪能想到這一招,馬上就 demo 給我看,第一,機櫃不是都有一些縱深嗎?儘管機房有公共照明,但機櫃基本上只有前後開孔,一般的公共照明是不足以照到機櫃裡面的,所以萬一有東西放比較深,或整線時剛好線藏在比較裡頭時,就可以拿來照:

這樣子是不是比較輕鬆也清楚多了?據這位老兄所述,以前他在照這類東西時,常會伸頭進去機櫃內看,那不但不符合人體工學,也容易有碰到線路的風險。當然這張圖我原本是想要照對方實際的整線狀況,但考慮到自己手殘會不小心動到線路的風險,還是用這個示意圖就好。

另外就是要看乖乖的保存期限也是很方便喔。隨著年紀越來越長,彎個腰都可能卡到的情況也都可能發生在自己身上了,LED磁吸燈這種隨處可見的東西並不怎麼高科技,但這位老兄會觀照自己的日常動作進而利用身邊的小東西來改善,的確是小弟值得學習的一點。

How to join windows node in K8S on GCP

最近在嘗試建立windows的node in K8S

以下是我的筆記,有興趣的同學可以參考一下

大部分步驟都跟微軟的文件差不多
Kubernetes on Windows

只有一小部分有些差異,主要是因為我的測試環境是在GCP上,所以在GCP firewall的設定上記得要allow pods跟service的網段,還有在建instance時在網路部分要將IP forwarding的功能開起來,以及routing要加,這樣不同node之間的pod才有辦法正常溝通

firewall allow for K8S pods and service
enable IP forwarding when create instance
routing for K8S pods
  1. build up a master node (Linux)
    由於目前windows server只能作為K8S的work node,所以我們還是需要建立一台Linux的server作為master node,在GCP我是使用CentOS 7的 image來作為master node,至於要怎麼建立master node我相信在網路上都有很多文件,以下是我的作法
    1. update system and install docker
      yum update -y
      
      yum install docker -y
      
      service docker start
      
      chkconfig docker on
    2. 由於只是測試環境,為了方便我會關閉firewall跟SELINUX
      service firewalld stop
      
      chkconfig firewalld off
      
      setenforce 0
      
      sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
    3. create repo for K8S
      cat <<EOF > /etc/yum.repos.d/kubernetes.repo
      
      [kubernetes]
      
      name=Kubernetes
      
      baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
      
      enabled=1
      
      gpgcheck=1
      
      repo_gpgcheck=1
      
      gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
      
      exclude=kube*
      
      EOF
    4. install kubeadm
      yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
      
      systemctl enable kubelet && systemctl start kubelet
      
      cat <<EOF > /etc/sysctl.d/k8s.conf
      
      net.bridge.bridge-nf-call-ip6tables = 1
      
      net.bridge.bridge-nf-call-iptables = 1
      
      EOF
      
      sysctl --system
      
      sysctl -w net.ipv4.ip_forward=1
    5. initial master node
      kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
      
      mkdir -p $HOME/.kube
      
      sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
      
      sudo chown $(id -u):$(id -g) $HOME/.kube/config
      
      sudo sysctl net.bridge.bridge-nf-call-iptables=1
    6. 安裝網路模組for K8S
      根據微軟的文件如果要可以跟windows server相容建議是安裝flannel並使用host-gw模式
      1. 下載flannel yml檔
        yum install wget -y
        
        wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
      2. 將yml中的vxlan改成host-gw
      3. apply flannel
        kubectl apply -f kube-flannel.yml
    7. 將特定DS(daemonset)設定成只能跑在Linux node
      因為目前這些DS只能跑在Linux的container上,所以會把他們設成只跑在Linux server上
      kubectl patch ds/kube-proxy --patch "$(cat node-selector-patch.yml)" -n=kube-system
      
      kubectl patch ds/kube-flannel-ds-amd64 --patch "$(cat node-selector-patch.yml)" -n=kube-system

      patch的yml檔可以從這下載node-selector-patch.yml

    8. 到這windows node的K8S master node就完成了,接下來就是確認kube-system pods是否都有正常運作,還有DS的設定有沒有生效跟DS是否設成rolling update
      確認pods是否running
      確認DS的是否有限制只跑在linux node
      確認DS是否設成RollingUpdate
  2. join a windows work node
    1. 這邊我是使用GCP的Windows Server version 1803 Datacenter Core image作為work node,K8S的文件上是說windows 1709以上的版本都有支援,但要注意container的image只能使用跟OS同版本號的,不然會跑不起來,以下command都是使用Powerhsell操作

    2. install docker(這邊會需要重開機)
      Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
      
      Install-Package -Name Docker -ProviderName DockerMsftProvider
      
      Restart-Computer -Force
    3. pull docker image
      請下載與你OS相同的版本,這邊根據微軟的文件是要下載microsoft/nanoserver,但我後來發現k8s的docker file image不是用microsoft/nanoserver而是用mcr.microsoft.com/windows/nanoserver,所以我這邊就直接下載mcr.microsoft.com/windows/nanoserver
      docker pull mcr.microsoft.com/windows/nanoserver:1803
    4. tag docker image
      docker tag mcr.microsoft.com/windows/nanoserver:1803 mcr.microsoft.com/windows/nanoserver:latest
    5. 準備工作目錄for K8S
      mkdir c:\k
    6. copy master node的驗證檔($HOME/.kube/config)到c:\k目錄,有了這個才可以連到master node(可以用SCP copy,現在powershell也有SCP可以用喔)
    7. 下載安裝7-zip
    8. 下載Kubernetes binaries for windwos,並用7-zip將它解壓縮到c:\k目錄,其中會包含kubectl, kubelet, and kube-proxy這些binaries,我是下載1.13.1版,可以從這下載kubernetes
    9. 設定環境變數for K8S
      $env:Path += ";C:\k"
      
      [Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\k", [EnvironmentVariableTarget]::Machine)
      
      $env:KUBECONFIG="C:\k\config"
      
      [Environment]::SetEnvironmentVariable("KUBECONFIG", "C:\k\config", [EnvironmentVariableTarget]::User)

      以上都設定好就可以使用kubectl連到master node

    10. 下載Flannel for window

      [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
      
      wget https://github.com/Microsoft/SDN/archive/master.zip -o master.zip
      
      Expand-Archive master.zip -DestinationPath master
      
      mv master/SDN-master/Kubernetes/flannel/l2bridge/* C:/k/
      
      rm -recurse -force master,master.zip
    11. join node
      cd c:\k
      .\start.ps1 -ManagementIP <Windows Node IP> -ClusterCIDR <pod-network-cidr> -ServiceCIDR <service-cidr> -KubeDnsServiceIP <Kube-dns Service IP>

      到這就成功join windows node到K8S了,請確定3支Powershell(kubelet, flanneld, kube-proxy)都有順利跑起來,有時Flannel 會跑不起來,需要手動再跑一次

      [Environment]::SetEnvironmentVariable("NODE_NAME", "<Windows_Worker_Hostname>")
      .\flanneld.exe --kubeconfig-file=c:\k\config --iface=<Windows_Worker_Node_IP> --ip-masq=1 --kube-subnet-mgr=1

  3. deploy a win-webserver on windows node
    wget https://raw.githubusercontent.com/Microsoft/SDN/master/Kubernetes/flannel/l2bridge/manifests/simpleweb.yml -O win-webserver.yaml
    
    kubectl apply -f win-webserver.yaml
    記得要把yml檔裡container的版本改成與你的windows node OS相同
    確認pods是否running
    確認service port
    access from internet

DevOps in Action, DevOps 日常/OpsDev 日常 – F5 DataSafe

起因來自於最近我常掛在嘴邊的一句話:誰上了雲端之後還用 F5 Load balancer 啊?上 Google Cloud 用的當然是 Google Cloud Load Balancing,上了 AWS 之後用的就當然是 Elastic Load Balancing,沒想到一句我看是理所當然的事情,同事間因為不同的角度,不同的專業背景,而有了不同的看法,也難怪有人說 DevOps 是一種文化轉變、是一種變革。由於我們公司的歷史說長不長,說短也有個十來年了,當初一開始經營時並沒有遇到雲崛起(AWS 崛起)的年代,所以僥倖的至今還幫客戶維運了不算小的自有機房,所以我們公司和一般使用純公有雲的公司不太一樣,我們有網路工程師、系統工程師甚至於值班工程師的配置。

這個故事開始於一位資深的網路工程師,何謂網路工程師?簡單的說就是那種有 CCNA, CCNP 甚至於有 CCIE 認證的專業人士,他們的日常工作項目就是在管各種硬體式的 Network Switch, Router, Firewall, ISP 線路, 流量一般來說,Load Balancer 由於功能或操作上也比較偏向於網路設備,所以在我碰到的公司裡,這設備一般也是歸網路工程師來管。

最近有天就產生了下面這個對話:我覺得 Clouding 上的 Load Balancer (Google or AWS) 固然便宜又方便,但是我不覺得 F5 比較差,而且看起來 AWS 就有提供 F5 的雲機器,也許我們可以考慮採用 AWS 上的 F5 雲機器服務,上次我去聽了 F5 的研討會,他們有個功能超神的,啟用之後就可以防 bot (機器人, 大概專指惡意的 bot, 例如來猜帳密的那種),還可以防中間人攻擊讓使用者帳密外洩之類的,最重要的是應用程式都不用改,F5 會自動地把 Javascript 插入在你的應用程式裡就可以作用了。

這位網工的伙伴講的很興奮,我聽了卻滿腦子黑人問號。我個人常習慣會把 IT 類的工作畫一條光譜線,一端是純開發端,也就是寫程式的啦,另一端就是純業務端,簡單來說就是不寫程式但懂客戶需求的,IT 相關的工程師,不管是管系統或管網路的,大抵來說可以算是在中間,意思就是網路工程師對於程式方面算是一知半解,知其然但不知其所以然,對於需求方面所知也是半桶水,當然這麼說是有點難聽了,事情總是可以從各種面像來看的,正面來說網路工程師是兼具兩者所長,所以可以遊走於自行開發和廠商解決方案之間,糅和出一個比較好的解決方案出來。

1

但是以這個例子而言,我們對於 F5 的這個 Advanced WAF 產品該如何取捨?我相信在傳統的分工情境下,大概不外乎就是網路工程師找廠商來 POC (Prove of Concept,概念驗證),以這個例子來說,我猜驗證的方式可能就是廠商去準備個攻擊的方法(當然這方法不會是廠商自己發明的,也許是來自於知名白帽駭客,也許是來自於某著名安全機構的概念性攻擊方法),然後測試看看裝載 Advanced WAF 前、後的差別,稍微大一點的組織,這件事情大概就很難邀請開發單位一起加入驗證了,一來也許是開發單位的人、產品或部門很多,不太可能都抓來一起驗證,一來可能是這公司的系統這邊也外包、那邊也外包,一般的公司就會認為這是網管自己的工作,不太可能邀請太多的關係者進來。

但是今天我們要打破這種傳統,單純從技術性的角度來分析這個產品,當然之所以能做到這件事,也是和我一向非常喜歡的 F5 的開放性有關,F5 大概是我看過文件和技術最開放的網路產品吧?文件整個豐富到不行,最重要的是這一大堆文件都還有人在維護的,有新版本時每個文件都會被重新檢視它的適用性,所以以下就開始我的技術分析。

DataSafe 算是 F5 Advanced WAF 裡的一個功能,Advanced WAF BIG-IP 13.1.0.2 開始提供,DataSafe 這功能就一併上市了。在以往的 Web Application 裡,瀏覽器端(或稱為 Client ) 其實是沒有任何保護的,既使是用了 SSL ,一旦使用者終端(PC, NB, 手機, 平版…) 被駭客入侵了,駭客就可以從瀏覽器端、從 OS 上側錄鍵盤或畫面等方式來劫持使用者的敏感資訊,以下是 F5 官方介紹關於 DataSafe 的影片及資料:

F5 DataSafe 介紹影片

F5 DataSafe 介紹文件

DataSafe 這個功能看起來是個執行在瀏覽器端的程式 (Javascript ?) ,藉由主動的置入 F5 所謂的 DataSafe Javascript 程式碼,幫你把敏感欄位在瀏覽器端就加密的方式,可以避免當前常見的 1)瀏覽器 plugin 問題 2) 中間人功能(有一些藏在本機把你信賴憑證偷換掉來偷聽的),然後在 F5 上就解密掉,所以讓你的 Web Application 不用修改就可以加上這個功能。

但是老實說,不管從文件上或 Youtube 影片上看來,這個機制不外乎是 1) 把程式上的 input box ID 給換給怪名字(F5說這個叫 Obfuscation) 2) 把敏感欄位資料 scramble 一下,我們可以想像的是,既使是入侵者,大概也不想要每天叮著你的網路流量去抽絲剝繭的找出敏感訊息,更何況是那種大量入侵一堆電腦的駭客,他們更不可能去分析那麼大的流量,所以可以做的就是去篩選出一些關鍵欄位或頁面來「偷聽」,這時候把欄位名稱亂取名或資料加密後,對於這類非針對性的駭客而言,應該會有一定的效果,這個道理就像是以前大家都會為自己的愛車加個方向盤鎖,偷車賊看到一排車子,為了怕麻煩就會懶得對有方向盤鎖的車子動手。

聽不懂嗎?這份 F5 文件對於 HTML Field Obfuscation 講得更仔細了,文中的兩張圖更是 清晰:

2.jpg
3.jpg

F5 這個機制做的好的地方是,他不用你自己動手去改程式,從影片看起來,你只要在他的管理介面上操作一下,這個機制的程式碼就會自動的插入在你的網站中,我想這對於許多的網管人員來說真是一大利器,因為我相信絕大多數的網管人員如果不是不會寫程式,就是程式和他不熟,至少那種有能力去寫出一個稍具規模網站的網管人員我是沒見過,能靠著 F5 這個產品就把網站漏洞給 patch 掉的這種外掛,相信在許多網管人員眼中都是神器了。

4.png

但實際上這件事有這麼難嗎?這不就也是支程式?人家文件裡也表明了這就是個把 Client 端欄位名稱加密然後配合 F5 server 上的解密行為,在這裡先讓我們看看 F5 自己的網站:

5.png

F5 似乎很顯然的沒有在他這個網站放入 DataSafe 的技術,因為我這個「中間人」利用 Developer tool 來觀察時可以很輕易的看到我自己的帳號和密碼,連帶的帳密的欄位名稱也很明顯,不符合 F5 文件裡的敘述

6.png

F5 網站自己沒有使用的原因我們難以得知,但從開發者的角度來看,既然知道了這種機制,那自己來實做會是困難的嗎?

讓我用 HTML Obfuscate 這個關鍵字來 google ,其實可以發現有很多網站在「教」大家怎麼做,例如這個,你可以把想要「Obfuscate 」的 HTML 語法貼上去,這網站就會幫你產生出攪亂後的語法:

7

當然如果你稍微比對一下 F5 的文件之後,會發現此 Obfuscate 並非彼 Obfuscate F5 的機制可不是這種單純把 HTML 語法攪亂丟到 client 端這麼簡單的,F5 提供的 Obfuscate 機制基本上應該是種非對稱式加密機制的「攪亂」,也就是被 F5 「攪亂」的 HTML 語法經由下一次 HTTP Post ( HTTP Get) F5 時,F5 會自己反解密回來,而且每一次「攪亂」出來的值都不會一樣(請參考這篇文章,這文章還提到可以抵禦的實際場景IP慢速攻擊猜帳碼)

所以說相較於一般網路上可以查到的 Obfuscate 方法,F5  DataSafe 的作法還是挺先進的。我們在網路上看到的都是屬於入門級的,這種入門級僅利用 client javascript HTML 語法攪亂的方法,對於 Client OS 的入侵可能有點混淆效果,但是對於 Man-in-the-browser 的攻擊效果就有限了,由於這類入門級的 Obfuscate 方法只對 Client 端攪亂,實際上要往 Server 上送 HTTP Post HTTP Get 時,還是得恢復原有的內容,這對於 Man-in-the-browser 的的攻擊就完全無效了。

所以我的結論是要說 F5 DataSafe 真的很神嗎?說難不難,說簡單嘛… 就我初步的 google 結果,網路上要找到現成類似 F5 做法的範例的確不太容易,但這並不是沒辦法自己撰寫的,只要開發人員願意,把幾個欄位名稱做個加解密機制基本上是一片小蛋糕來著,只是看你願不願意做這件事而已。

為什麼我特別要提到「願不願意」做這件事?這就得回到這種抵禦攻擊的方法是否有效了,假設一般稍有腦袋的猜帳密攻擊會用一堆IP來進行下面這類慢速動作:

8

當我們用了 F5 DataSafe 類的欄位加密機制後,攻擊者就無法很簡單的利用 ‘User’ ‘Pass’ 兩個欄位名稱來進行程式化的攻擊,因為每一次 F5 跑出來的 ‘User’ ‘Pass’ 欄位名稱都會被改變

例如由這個:

9.png

被攪亂變成這個:

10

那,把我的攻擊程式改複雜一點呢?稍微用人眼看一下這個例子,發現 username 欄位名稱都是以 <input type="username" name=" 這個 pattern 開頭,結尾於一個單引號,另一個 password 欄位以此類推,這不就也很快的破解了?

所以說到底,正所謂道高一尺,魔高一丈,這和偷車賊怕麻煩不偷有方向盤鎖的車子意思一樣,有做的可以對一般通殺型的駭客起一些阻嚇作用,但是對於那些專門特定來找你的惡意駭客,也就是所謂的針對式攻擊,不管是買 F5 來檔或是自己寫程式來檔,都很難依靠單一機制來防止入侵,那要做多少呢?我想還是回到風險/成本原則,也就是根據你所有的成本或資源,優先處理高風險的問題,我很少有看過有公司什麼資安都做到完的,就像我們不會在自己家裡弄個 108 道鎖來防小偷的意思一樣,當然這個決策只能由當事人自己做判斷,想聽 Sales 或外部顧問的意見? 你怎麼知道他們是在乎你的需求多一些還是在乎他的業績多一些?  你有看過 Sales 或顧問跑到你家好好研究你真正的需求在哪裡的經驗嗎? 就算對方肯,你敢讓他們來看嗎?!

F5 DataSafe 功能呢? 我個人認為這東西蠻適合哪種系統不是自己開發出來的公司,尤其是當你的公司有越多外包的網站越是這個樣子,由於有一些外包廠商可能根本也就沒維護合約了,或是要添加這個新的機制搞不好還比去買 F5 Advanced WAF 還更貴些,這時候就蠻適合來用 WAF 這東西,當然看是要買 F5 或其他廠牌的 WAF ,那又是另一個層次的決策了。

  • 對了 F5 Advanced WAF 還有另一個 Anti-Bot 功能似乎也常被來拿宣傳,只是目前沒時間研究,有接會再來研究下了

清潔用品推薦 – 適用於筆電、螢幕、鍵盤滑鼠、手機…

為什麼我們要寫這一篇呢? 相信每一位辦公室的工作者,不管是剛入社會的文書經辦還是位居高層的總字級人物,每天都不可或缺的工具就是你的電腦了,你用的可能是 PC、筆電或手機,不管哪一個用了每幾個禮拜之後上面都會沾滿了雙手分泌出來的油脂或手汗,加上環境中的落塵或吃飯喝湯喝飲料不小心濺出的污漬,總之就是髒啦,平常你都是怎麼清潔的呢?

話說我們公司有位同事前一陣子因緣際會之下飛到了菲律賓談案子,好死不死的他的筆電就在對方的辦公室裡 GG 了,原本應該是一副很難堪的下場的,沒想到對方的 MIS 竟然拆開了他的筆電,把內部風扇的灰塵清了清之後,那台經典小黑機又頭好壯壯的活了過來,但我同事除了驚艷於這點功力之外,那筆電回來時竟然是宛若新品般的乾淨絲滑(對,就是絲滑這個形容詞)。

於是乎我們 MIS 便開始了一段艱鉅的探訪任務:找到對方的清潔秘訣是什麼。最後,終於讓我們在中山北路的外勞專用舶來品店找到了這個東西:GreenCross 酒精 + 超細纖維布

2018-11-20 17.38.46

其實那塊超細纖維布我們是隨便買來的,想來任何一個牌子的都行,但是這罐菲律賓進口的 GreenCross 酒精就真的神奇了,價格不高,一罐可以用很久,接著就讓我們看看她的效果吧:

辦公室裡隨便撿一台看起來有點… 嗯的筆電來看看,雖然畫質不好,但可以看得出來 Dell Latitude 這類的上蓋材質很容易沾手汗變成這樣子,尤其在反光下就會有明顯的色斑和刮痕出現:

2018-11-24 16.33.14

開始隨便拿 GreenCross 倒在纖維布上亂擦一通,可以發現鍵盤 C 面處雖然非 A 面材質,但也是有些許油油的情況:

2018-11-24 16.34.26

擦完之後同一個角度再拍一張,可以明顯發現反光的色斑消失了許多,原本會容易因反光+油脂而容易看到的刮痕也不太容易看到了:

2018-11-24 16.36.13

鍵盤 C 面處也會有一樣的效果,看起來賞心悅目:

2018-11-24 16.36.28

老實說,如果只是有賞心悅目的話,那我以前常用的高科技泡棉沾水輕擦也是有同樣的效果,這罐清潔劑的重點是,擦完之後不但有股淡淡的讓人愉悅的香氣,而且摸起來的觸感上可以說是絲滑柔順,感覺上是上了一層看不見的保護膜一樣,原本很容易沾上手汗的材質感覺上也減緩了一些,吼~~~ 這真是我個人所見過的清潔工具中,效果最好的一種。

我原本還在想說會不會現在的清潔劑都那麼厲害了,剛好 MIS 之前也做了 AB Testing,所以我就拿著他們之前的對照組來試了一下,這應該是坊間買筆電常會附贈的清潔套裝組,搭配超細纖維擦拭布之後,我發現,其實這個清潔劑一樣可以有清潔的效果,只是清潔完畢之後,以 Latitude 的上蓋來說,摸起來的感覺是更接近出廠時的觸感 – 略微粗糙,但沒有絲滑的感覺,手汗也比較容易沾上,當然更沒有那種愉悅的香氣:

2018-11-24 16.13.38

最後拿來清潔了一下門口的電鈴,這電鈴放公司大門口按來按去的也好幾年了,從來沒清潔過,老實說,像是這麼髒的塑膠表面我會覺得還是拿高科技泡棉沾水輕輕擦拭的效果比較快且佳,用 GreenCross 雖然有酒精揮發快比較不怕傷到機器內部的優點,但擦起來就要費點力氣往覆好幾次,但最後的效果還是不錯的,這讓我想到一般的公司或家裡電話可能也都蠻適用於 GreenCross 這產品的,但這種門上的對講機因為使用時離鼻子比較遠,不像一般電話或鍵盤在使用時離鼻子比較近的關係,用 GreenCross 就顯現不出她的淡淡香氣:

總之這個 GreenCross 產品可以說是繼高科技泡棉之後,會讓我驚艷的第二個清潔用品了,各位有在幹 MIS 的朋友們,花點小錢讓你的客戶感受一下這樣子的清潔服務,相信一樣會讓許多客戶覺得驚艷的。

k8s in 5 minutes for Windows 10

前一陣子看了 William 大的 k8s in 5 minutes 之後,才發現原來要在本機跑 Kubernetes 不用再裝 minikube 了,尤其是在 Windows 環境下,要玩 k8s 還得要有特別的安裝方法,這讓我們這些用 Windows 當成日常環境的人總有些不得其門而入的感覺,現在 docker for desktop (下載時可能會叫做 Docker for Windows) 原生支援 k8s (本機版)之後,對於想要很快的看看 k8s 是啥的 Windows 使用者算是個很好的入門磚。

其實 5 分鐘所有的步驟都和 William 大寫的差距很小,只有小部分 Windows 環境下該注意的事項,但小弟資質駑頓,記性太差,還是寫清楚些以便日後參考:

  1. 要先啟用你 Windows 下的 Hyper-V (對 Windows 家用版就別試了)
  2. Docker for Windows 版 (現在也沒有所謂的 Edge 版本了)
  3. 如果你之前有裝過 minikube 的話,記得把 Kubernetes 的環境從 minikube 改成 Docker for Windows
    01
    02
  4. 在我的機器上 kubectl.exe 看來沒有加到搜尋路徑下,請自行加入 (我的安裝路徑在 C:\Program Files\Docker\Docker\resources\bin),不然就切換到該目錄下:
    C:\> cd C:\Program Files\Docker\Docker\resources\bin
  5. 裝個 k8s dashboard (非必須)
    C:\> kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
  6. 把 proxy 跑起來,跑起來之後不能關掉這個視窗,得另外開一個命令列視窗出來繼續,
    C:\> kubectl proxy
    Starting to serve on 127.0.0.1:8001
    ...

    跑起來之後你可以用瀏覽器開下列網址存取 dashboard 來:

    http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
  7. 開另外一個命令視窗把範例裡的 echo-server 裝起來:
    C:\> kubectl apply -f https://raw.githubusercontent.com/coder-society/kubernetes-with-telepresence/master/echo-server/echo-server.yaml
  8. 最後一個步驟和 William 大的不一樣,由於 telepresence 這個工具在 Windows 下執行會有問題,所以用瀏覽器透過 proxy 的方式來測試這個 echo-server (其實這裡我卡了很久… 因為第一次用 k8s,才發現 William 大用了這個 telepresence,而 Windows 下這東西目前又跑不起來)
    http://localhost:8001/api/v1/namespaces/default/services/http:echo-server:/proxy/

    由於我們沒有指定 echo-server 的 namespace,所以這個服務會被放在 default namespace 下,與剛剛的 kube-dashboard 的 namespace 不同,一開始我搞錯也是卡很久

  9. 這個 echo-server 的功能看起來很簡單,就是 show 出目前是從哪台 server (k8s 的術語叫 pod) 跑出來的,你每次 refresh 一次,就會換一台 pod 來跑
    03
  10. 也可以看一下 k8s-dashboard,網址在剛剛啟用 proxy 之後有 show:http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
    04

同事 J 問我說這個 Docker for Windows 是不是開一個 Windows node 出來,仔細看了一下應該不是,它會在你的 Hyper-V 下起一個 Linux VM,所以要試 Windows node 的還是得等等其他人的文章了

05

06

其實昨天剛好有和一位 Google 的業務員聊到天,她自己認為 k8s 改版的速度實在是太快了,有些舊東西淘汰了、新東西加進來之類的都沒人知道。例如這一本台灣有的翻譯書:Kubernetes 使用指南,用到的是 k8s 1.0,裡頭講到的 Replication Controller 在新版本裡都改用 Deployment 和 Replica Set 了,現在去 Google 開一個 k8s cluster 也預設是 1.9.7 了,照著書來做大概只會覺得常常都對不上台詞吧。就算去翻對岸的簡體紀念版:Kubernetes 权威指南(纪念版),出版時也只是 cover 到 1.6 版,更遑論 k8s 官方的網站上已經放了 1.12 版讓人下載了,所以要學這個除了得花時間之外,手腳還得快一點,現在(2018/11/07)拿著最新的簡體中文書可能還對得上環境,可能再過幾個月又得另外找書或文章來學了。