2019年4月3日星期三

新玩具!Raspberry Pi 注意事項及新手導讀

很久沒更新過 Blog,在 k8s 的 NFS 研究受挫,轉向其他研究,搜尋 STEM 時發現新目標!那就是 Raspberry Pi!


為甚麼是 Raspberry Pi,而不是其他?


很簡單,因為 Raspberry Pi 本身是一台功能齊全的電腦,說它能取代電腦……又還沒到這個地步,Raspberry Pi 本身也有些限制,如果不了解,當成電腦用,恐怕某一天會發生意外。

網上隨便一搜,有很多令人振奮的項目,不過看別人玩得那麼歡樂,實際上又是怎樣?所以這次說明 Raspberry Pi 缺憾 / 限制之類,別把 STEM 想得那麼簡單。

2019年3月4日星期一

開發者就該學 Linux!

事先聲明,我不是 Windows 愛好者,只是世界上太多開發人員愛用 Linux  做開發。

為甚麼突然有這個「開發就該用 Linux」想法?


跟開發路線有關,試用雲端技術,或多或少接觸到伺服器、Virtual Machine 等等,例如︰
  • minikube
  • Docker
  • git
  • Raspberry Pi
用 Windows 版本不是不行,只是安裝及部署上有各式各樣麻煩問題,尤其雲端技術。IoT 方面,Windows 也有 Raspberry Pi 版本,但限制很多,不能當電腦用。

Windows 10 IoT
https://docs.microsoft.com/en-us/windows/iot-core/downloads

2019年2月20日星期三

Volumes、Persistent Volumes 及 Persistent Volumes Claims

上一回【了解及編寫 Kubernetes 的 yaml


用過 GCP 建立 Pod 及 Service,也試過寫 yaml,差 Persistent Volumes 就完成基本中的基中 k8s 運用……

對,只是運用,離 production 還有不少距離……

Volumes 跟 Pod 共生死, Persistent Volumes 與 Cluster 共生死,因此,Pod 用 Persistent Volumes 的話,就算 Pod 死,資料也可以續存,只要再建立一隻新 Pod,掛載 Persistent Volumes。

Persistent Volumes 與 Persistent Volumes Claims 關係


Volumes = 暫存
Persistent Volumes = 硬碟
Persistent Volumes Claims = 分割硬碟

會電腦硬件,沒更貼切比喻!

2019年1月31日星期四

了解及編寫 Kubernetes 的 yaml

上一回【申請 Google Cloud Platform ( GCP ) 及示範 Kubernetes Engine


Docker 有 yaml,K8s 也有 yaml,兩者都是 yaml,為甚麼完全不同呢?這個就不深究了,但兩者的 yaml 不能共用,已經確認過,所以有必要了解 K8s 是怎樣用 yaml 檔,Docker 那邊忘掉吧。

Kubernetes Object 及 Kubernetes API 不需要太深入研究,稍微知道是甚麼就夠,實戰才是本文重點。

為求方便,這篇用 Google Cloud Shell ( GCS ),不用 Google Cloud SDK 版本,因為 kubectl 之前給 Docker for CE 佔用了,把設定改回來很麻煩,之後的文章,應該會改回用本機 Shell。

Google Cloud 快速入門
https://cloud.google.com/kubernetes-engine/docs/quickstart#choosing_a_shell

yaml 語法
https://javatoybox.blogspot.com/2019/01/kubernetes-yaml.html#try-docker-compose

2019年1月17日星期四

Open Source 是甚麼?怎面對它?擁抱它?

Blog 中多篇文章提到 Open Source,但沒有一篇統整文章,詳細談論 Open Source,網上已經有太多太多對 Open Source 的定義及解說,所以這裡就不再累贅說一篇,只會說我對 Open source 主觀看法。

———————————簡易的分隔線————————————

Open Source 是甚麼?


客觀答案,網上隨便 Google 就有一大堆,那只不過是甚他人的答案,最後還要找個自己答案。為甚麼要有自己答案?那是為了如何面對 Open Source,用甚麼態度使用 Open Source,就會往甚麼方向前進。很玄很虛?舉個例,使用 Open Source 程式碼,當中會有 Lincense ( MIT、GPLv2、Apache, etc ) 問題,程式碼作者對開放的希望都反映在 Lincense 當中︰

作者希望,使用者的洐生産物對外完全開放 ( GPLv2 Lincense)
作者希望,使用者的洐生産物可以 close source ( MIT License )
作者對法律條款感到煩躁,所有權利直接丟出公海 ( WTF Public License v2)

2018年11月30日星期五

申請 Google Cloud Platform ( GCP ) 及示範 Kubernetes Engine

上一回【Docker 上的 Kubernetes

GCP_cover.png

上一回硬將 Docker-compose file 用落 K8s,而且是無法設定的 single node cluster 模式,還有煩人 database lock 問題未解決,用來開發還好,但用在 production 上,無法接受。

一邊看 GCP 有甚麼可以設定,一邊解說功能及使用方法,這次主要說 Kubernetes Engine。

流程︰
  1. 前期準備︰
    • 申請 GCP
    • 建立 Project
    • 設定帳單
    • 安裝 Google Cloud SDK 或使用 Google Cloud Shell

  2. 開始使用︰
    • 設定 project 及 zone
    • 建立及授權 cluster
    • deploy image 到 cluster
    • 測試結果

2018年11月15日星期四

Docker 上的 Kubernetes

上一回【Docker Network 及 Docker Compose 教學

k8s_1.png

自 18.06 Stable 版本起,安裝 Docker CE 會包含 Kubernetes,於本機執行,不能設定的 single-node cluster,作為開發及測試用。

以入門來說,是個好選擇,熟悉後再上 Google Kubernetes Engine 服務。

Deploy on Kubernetes
https://docs.docker.com/docker-for-windows/kubernetes/