kubespray離線部署k8s集群


  最近在看kubespray的ansible-playbook自動化部署流程,對ansible的使用有了新的理解,為了加深對kubespray的理解,計划改造一套完全離線安裝的kubespray版本,有什么問題建議,歡迎大家隨時指出。

  kubespray GitHub地址為: https://github.com/kubernetes-sigs/kubespray , 這里使用分支為release-2.15,對應的主要組件和系統版本如下:

    • kubernetes  v1.19.10
    • docker v19.03
    • calico v3.16.9
    • centos 7.9.2009

  kubespray離線包下載地址:https://www.mediafire.com/file/nyifoimng9i6zp5/kubespray_offline.tar.gz/file

       centos7.9 ISO下載地址:https://www.mediafire.com/file/2854z2xt6uvwydh/CentOS-7-x86_64-Minimal-2009.iso/file

  操作系統的安裝這里不再贅述,離線包下載完成后解壓到/opt 目錄下:

tar -zxvf /opt/kubespray_offline.tar.gz  -C /opt/

  這里部署采用All in One方式,即單節點模式,主機IP地址為:192.168.137.192,CPU為4核,內存為4G,開始部署ansible服務器:

yum install /opt/kubespray_offline/ansible_install/rpm/*
pip3 install /opt/kubespray_offline/ansible_install/pip/*

  配置主機免密碼登陸:

ssh-copy-id 192.168.137.129 

  配置ansible 主機組:

cd /opt/kubespray_offline/kubespray
declare -a IPS=(192.168.137.129)
CONFIG_FILE=inventory/mycluster/hosts.yaml python3.6 contrib/inventory_builder/inventory.py ${IPS[@]}

  開始部署k8s:

ansible-playbook  -i inventory/mycluster/hosts.yaml  cluster.yml  -vv

  部署時間大概持續半個小時,中間不需要任何介入,部署完成后,查看集群狀態

kubectl get nodes

  

   查看kubernetes-dashboard 映射的端口號,默認為38443:

kubectl get svc -n kube-system

  

   查看賬號 k8dash-sa 登錄token:

kubectl describe secret k8dash-sa -n kube-system | awk '$1=="token:"{print $2}'

  

  

  瀏覽器訪問kubernetes-dashboard地址:https://192.168.137.129:38443/,並輸入賬號k8dash-sa的token進行登錄:

 

   該集群默認還安裝了k8dash管理界面,登錄方式跟kubernetes-dashboard一樣,地址為:http://192.168.137.129:34654 , token 還是使用賬號k8dash-sa的token即可:

 

   如果部署前要自定義k8s集群信息,編輯配置文件進行修改即可:

vi /opt/kubespray_offline/kubespray/inventory/mycluster/group_vars/all/all.yml

  k8s默認集群的證書有效期為1年,離線包里面已經將源碼修改為100年,並重新編譯,查看證書有效期:

kubeadm alpha certs check-expiration

   kubespray也支持多節點部署,假如有三台主機:10.68.60.71 10.68.60.72 10.68.60.73,則配置IPS變量的時候輸入即可:

declare -a IPS=(10.68.60.71 10.68.60.72 10.68.60.73)
CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}

  此時查看hosts.yaml即可看到,可以根據需求自己搭配各個主機的角色:

cat inventory/mycluster/hosts.yaml

 

 

 

 

  


免責聲明!

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



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