iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 1
0

最近工作好忙喔,拖到開賽最後一天,還是得硬著頭皮參加
還好第1天可以打打嘴炮再拖1天@@~~

第1次參加鐵人賽,感謝ithome辦這個比賽,讓大家有分享的空間。
一直以來從大大們分享的文章,在有限的時間內學到很多,所以今年希望學一些東西來分享。

今年鐵人賽提早2個月開賽,所以也少了2個月的學習時間,
今年的理想是建置一個完整的DevOps環境,
而這個環境要能在Ubuntu上跑的,
以期DevOps的設定能儘量自動化,建置好後CI/CD也能儘量自動化

因為來不及學,為求完賽,前面先介紹一些工具,後期再用一些CI/CD相關主題來混篇數撐個30篇
先求做出一個小巧的實例,以後再來加強安全性跟HA,當然IPv6的部分就不實作啦~

主題

Docker:這個最簡單,先玩玩比較有信心
後來發現如果只是要做小團隊的DevOps好像用Docker Swarm就夠了

  • Vagrant:
    就算你不想用,但很多專案都用vagrant,學了才看得懂vagrantfile

  • Ansible
    後來也沒什麼實作,所以只是寫寫註解,以及官網文件怎麼查,現在我已經比較看得懂那些yaml檔了

  • Kubernetes:
    k8s有完整的網路環境,難很多,比較適合像「訂票系統」、「購物網站」負載變化大,這種公開服務
    可能只會挑戰kubeadm(實作Kyle Bai大大的文章,並加一些註解)

  • 其他大概介紹一些CI/CD相關的container
    NetCore
    版控(GitLab)
    CI(GitLab CI or Jenkins)

基本上沒啥原創性,就是像樂高一樣,只求把自己想的東西組出來
各 工具 的 指令、設定 也只寫有用到的部分,想學完整的再從參考連結延伸學習

我想建置的環境如下:

實體機:1台Mac (沒辦法,我的PC沒辦法跑VM)
後來發現在Mac上建VM會造成環境的汙染(例如:virtual nic、cert、ssh那些,沒清乾淨可能造成影響實驗)
為了實驗方便,我會建個 10gb ram 的 vm,再在這個vm下實驗

2~3個VM(ubuntu 18.04) 當 k8s 的 Master Node、Work Node
VM上跑 docker、container(GitLab、microsoft/dotnet:2.1-sdk)

硬體規格建議:

因為我的host會用macos,跑3個virtualbox的vm(ubuntu 18.04)
如果你用ubuntu當host,可能會更好建置吧
由於同時要開3個vm,建議cpu i5、ram 16gb (聽說master node要給2gb、其他worker node要給1gb)

在Mac底下
1.Vagrant 建 VM ( Virtual Box 或 VMWare Fusion)
用VMWare的VM來模擬Node應該是最好的吧?
但vagrant vmware plugin license 一臺電腦要 79USD
如果Virtual Box能當個稱職的Node(docker),可能79USD就不用花了
2.Vagrant透過ssh,對VM,用Ansible,自動化建置k8s Node
3.用kubeadm建置k8s cluster
因為minikube只有單節點,而我又不想用雲端(例如:GCP、AWS、Azure)
所以我想用kubeadm在Local端建k8s cluster

註:網路上有minikube建k8s cluster的文章,但我沒試過
透過 Minikube 建立多虛擬機節點的 Kubernetes 叢集
https://kairen.github.io/2018/07/22/kubernetes/deploy/minikube-multi-node/

==================
在proxy後面,很多指令都要多加 proxy 參數,例如:git、npm、apt-get…
甚至有些要離線安裝,例如:npm

所以…想必有些人必須在(1)proxy底下建k8s、甚至需要(2)離線建置k8s cluster的

因為我是在家裡玩k8s的,所以自然沒有proxy等問題
所以上述2個問題就不在本次討論範圍囉

備註:

愈學愈覺得DevOps CI的部分不需要用到k8s,CD也不是每個組織都需要到k8s
因為時間的關係,本來想很偉大的主題,就先減目標,今年只求完賽囉~

凡參考到、引用的文章,都會儘量po出處,如果有冒犯之處,煩請告知~


下一篇
day02_docker01_基礎指令
系列文
在地端建置Angular+ASP.NET Core的DevOps環境31

尚未有邦友留言

立即登入留言