mac上k8s學習踩坑


本文學習k8s參考內容: http://docs.kubernetes.org.cn/126.html,學習過程中遇到一些坑,記錄如下:
----------------------------------------------------------------------------------
  k8s目前最好是用linux進行部署,windows跟mac現在雖然有k8s的版本但用起來會有一些問題。最近在自己本地mbp上部署k8s的時候繞了一些彎路,特此記錄。
mac上比較方便的一點是docker for mac上集成了k8s,所以直接利用docker for mac安裝k8s即可,安裝完成后啟動,會自動啟動一個只有1個節點的k8s集群。 好處是不用配了,可以直接使用kubectl命令進行相關操作,壞處是無法自己配多節點集群(mac上的k8s功能是不全的)。
  另一種使用方式是minikube,這個借助於virtualBox或者VMware可以使用多節點偽集群,遺憾的是,經過測試發現minikube在mac上存在bug。
minikube介紹:
  minikube的github官方介紹:
  Minikube is a tool that makes it easy to run Kubernetes locally. Minikube runs a single-node Kubernetes cluster inside a VM on your laptop for users looking to try out Kubernetes or develop with it day-to-day.(Minikube是一種工具,可以在本地輕松運行Kubernetes。Minikube在筆記本電腦的VM中運行單節點Kubernetes集群,供希望嘗試Kubernetes或日常開發的用戶使用。)
  啟動minikube,從控制台也可以看到,啟動的時候下載了一個ISO鏡像文件,具體運行使用的vm技術由--vm-driver指定。
minikube試過的坑:
  中文官方教程的minikube是在osx系統進行的,但實際按照教程,並不能完整走完整個流程。
第一個錯誤在minikube啟動的時候,所給的命令是minikube start --vm-driver=xhyve,bhyve是FreeBSD下的虛擬技術,xhyve是在基於bhyve的osx版本,體積非常小,只有230k,可以當做virtualBox,VMware Function之外的虛擬機使用。這個命令是設置k8s集群使用虛擬技術為xhybe,它的值包括virtualbox、xhyve、vmwarefusion,默認是virtualbox。該命令最終不能正常
  1、網絡不通
  官方原版minikube,本地藍燈代理,會報錯:minikube start --vm-driver=xhyve --docker-env HTTP_PROXY=http://代理ip:端口號 --docker-env HTTPS_PROXY=http://代理ip:端口號
  有一個warning,大意是說xhyve已經被廢棄了,后續版本將刪除,建議使用hyperkit。報錯內容是下載kubelet失敗,莫非我代理設置的不對?
  2、國內版本,按照社區的介紹進行啟動,會報錯
  采用阿里雲版本:啟動minikube,會停留在starting cluster components......很長時間,最終報異常:
  這個看上去是k8s的代理不能正常啟動導致的。沒找到解決辦法。
  3、正常啟動的,無法獲取對外網絡ip地址
  既然上邊有warning提示,那就按照提示用hyperkit吧。安裝docker-machine-driver-hyperkit后,minikube start --vm-driver=hyperkit啟動,可以啟動,但對外暴露的ip是無法獲取的:
  minikube start --bootstrapper localkube也是可以啟動minikube的,只是要安裝virtualBox,最后對外暴露端口問題一樣無法解決。
  如果不在外部訪問應用,這個倒是也沒啥影響,而且教程中所給示例也是這樣的。有文章說顯示為pending的時候,等一分鍾就好,試過了等了好幾分鍾,仍然這樣。
使用docker自帶的k8s:
  為啥使用minikube呢,因為當時選的學習教程用的minikube,由於是官方教程,沒有絲毫懷疑,結果撞的頭破血流。使用minikube不就是為了一個集群環境么,docker for mac已經自帶了k8s,而且啟動自帶一個單節點集群,直接使用豈不美哉?
  因為教程中先把執行環境設置為了minikube,需要先把環境切換為k8s,docker for mac 上右鍵即可:
  可以看到地址正常了:
  資源刪除:
  kubectl delete service hello-node
  kubectl delete deployment hello-node
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM