k8s入門基礎之如何在mac上搭建單機k8s學習環境


前言

  目前k8s的流行程度和關注度可以說是不斷地在提高,筆者之前也一直在關注k8s的發展趨勢,但遺憾一直忙於其它事情,未能專心地進行全方位的學習和寫出一些心得。在經歷了幾家公司的技術架構后,目前大家都是認為k8s的應用是較為相對“終極”的形態,這邊便開始對k8s的基礎搭建到項目部署以及在其中遇到的一系列問題都會在這個系列里面會有一個較為系統的記錄。(這邊涉及的內容希望讀者都能有docker的相關應用知識,docker的一些基礎知識不會在這系列文章內進行闡述)

   

正文

  對於mac/windows,為了方便可以使用docker desktop for mac/windows 的集成環境進行搭建k8s的學習環境(當然虛擬機各個linux的版本也行,但是較為繁雜,后面會有專門的一篇文章來寫k8s在生產環境的環境搭建),本系列的k8s環境就基於docker desktop for mac的集成環境進行講解。
  
  在使用docker desktop for mac/windows之前,我們需要知道由於國內網絡環境的原因,即使docker desktop 里面集成了k8s的基礎環境,但是還是需要一些依賴鏡像的支持的,由於官方源是谷歌的原因,所以國內基本上很難down下來,即使掛了代理(目前我測試的情況是依賴鏡像會down很久,有些還down不下來,setting里面可以看到k8s一直都是啟動中的狀態)
 
  國內目前用的最廣的方案是由阿里的大神提供的k8s-for-docker-desktop,具體原理不在此贅述,詳見https://github.com/AliyunContainerService/k8s-for-docker-desktop
 
  可以選擇最新的master分支的鏡像版本進行拉取,也可以根據各分支的docker-desktop 版本號對應的分支下載
 
    1.下載docker desktop for mac/windows
    https://docs.docker.com/docker-for-mac/edge-release-notes/ 此為官方各版本的edge release (此處需要注意下載獲得k8s-for-docker-desktop支持的版本)
 
    2.設置好docker-desktop的國內加速源,可以選擇阿里雲的鏡像加速服務或者中科大的鏡像加速https://docker.mirrors.ustc.edu.cn
 
    3.clone 好我們的k8s-for-docker-desktop,然后cmd進入到該目錄,執行 ./load_images.sh 獲取到k8s的依賴鏡像(images.properties 內的依賴鏡像版本可以根據自己當前的k8s版本進行變更,如果你知道對應依賴版本號的話)
 
    4.在docker-desktop內勾選k8s的支持,請勿勾選Deploy Docker Stacks to Kubernetes by default ,不然會導致又卡在starting
 
    5.restart一次docker即可看到k8s處於running狀態
 
    6. kubectl cluster-info 驗證k8s的集群狀態 kubectl get nodes 查看集群節點信息
 
  tips:
    如果無法成功啟動,可以執行
      pred='process matches ".*(ocker|vpnkit).*" || (process in {"taskgated-helper", "launchservicesd", "kernel"} && eventMessage contains[c] "docker")' /usr/bin/log stream --style syslog --level=debug
      --color=always --predicate "$pred"    進行查看docker的日志
 
      
    7.配置k8s的控制台
 
    --追加
 
    --構建
    kubectl create -f kubernetes-dashboard.yaml   (追加更新和自有文件任選其一,如果沒有自有構建文件,請是由追加的link)
 
    開啟api訪問代理
    kubectl proxy
 
    本地瀏覽器訪問 http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/overview?namespace=default
    即可看到dashboard了
 
    8.配置控制台訪問令牌
 
    # 獲取登陸 token
    TOKEN=$(kubectl -n kube-system describe secret default| awk '$1=="token:"{print $2}') kubectl config set-credentials docker-for-desktop --token="${TOKEN}" echo $TOKEN
 
 
 
     

 

  

 

   


免責聲明!

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



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