溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎樣搭一個K8s集群

發(fā)布時間:2021-12-16 09:59:09 來源:億速云 閱讀:163 作者:柒染 欄目:云計算

怎樣搭一個K8s集群,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

在公司一直用的現(xiàn)成的kubernetes環(huán)境,封裝的組件很多,這次嘗試自己搭一個輕量級的環(huán)境,踩了好多坑。
前置要求:
    兩臺主機(jī),可以是云服務(wù)器、虛擬機(jī),網(wǎng)絡(luò)要互通,內(nèi)存最好大于  2GB,主機(jī)上都要提前安裝Docker。

下面我使用的兩臺主機(jī)。

主機(jī)名(centos)    
ip    
角色    
guozhao-50    
192.168.9.50    
Master    
guozhao-51    
192.168.9.51    
slave    


搭建過程


1、首先在兩臺主機(jī)配置阿里云鏡像源地址


#進(jìn)入root用戶 sudo su #配置鏡像地址 cat </etc/yum.repos.d/kubernetes.repo [kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOF

2、設(shè)置兩臺主機(jī)SELinux為disable,設(shè)置swap進(jìn)禁用

   
   
   #禁用SELinux
    setenforce 0
    #禁用swap,由于啟動swap會產(chǎn)生性能問題,所以k8s默認(rèn)禁用swap
    sed -ri 's/.*swap.*/#&/' /etc/fstab
    swapoff -a


3、在兩臺主機(jī)分別安裝kubeadm,kubelet,kubectl

yum install -y kubelet kubeadm kubectl

4、兩臺主機(jī)設(shè)置開機(jī)自啟


   
   
   systemctl enable kubelet.service


5、創(chuàng)建集群


   
   
   
#在準(zhǔn)備作為master節(jié)點(diǎn)的主機(jī)運(yùn)行命令    kubeadm init \      --kubernetes-version=v1.19.0 \      --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \      --pod-network-cidr=10.24.0.0/16 \      --ignore-preflight-errors=Swap    
   # --kubernetes-version 指定版本    # --image-repository 由于墻的問題,使用阿里云的鏡像地址    # --pod-network-cidr 設(shè)置pod區(qū)間,不設(shè)置也可正常工作    # --ignore-preflight-errors 如果預(yù)檢出現(xiàn)錯誤可以忽略      

 

此時可以看到各個組件已經(jīng)啟動起來了


 怎樣搭一個K8s集群

如果上一步出現(xiàn)錯誤,需要重置kubeadm

   
   
   kubeadm reset


6、但是此時kubectl命令行不能用,需要將kubeconfig復(fù)制到指定位置


   
   
   #切回普通用戶
    su centos
    #拷貝文件
    mkdir ~/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config

此時查看集群信息
   
   
   kubectl get node

怎樣搭一個K8s集群

可以看到是NotReady,原因是沒有準(zhǔn)備CNI網(wǎng)絡(luò)插件

7、安裝CNI網(wǎng)絡(luò)插件


   
   
   #這里安裝的weave
    kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

怎樣搭一個K8s集群

等待安裝完成。

稍候再查看master,狀態(tài)為Ready

怎樣搭一個K8s集群


8、node節(jié)點(diǎn)的加入


   
   
   #首先在master獲取token,在master執(zhí)行
    kubeadm token list
    #如果token已經(jīng)過期,體現(xiàn)為找不到token,執(zhí)行以下命令生成token
    kubeadm token create #生成token

怎樣搭一個K8s集群

在master獲取ca證書sha256編碼hash值

   
   
   openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'


怎樣搭一個K8s集群

在slave上執(zhí)行kubeadm join


   
   
   sudo su #進(jìn)入root用戶
    kubeadm join <master-ip:port> \ #master-ip:port為kubeconfig文件的ip和port
    --token  <token> \ #上一步的token
    --discovery-token-ca-cert-hash sha256:<hash>#上一步的hash

查看終端

怎樣搭一個K8s集群


   
   
   注:如果遇到下圖錯誤執(zhí)行命令
    echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables

怎樣搭一個K8s集群

9、在node節(jié)點(diǎn)使用kubeconfig

將master節(jié)點(diǎn)的kubeconfig文件復(fù)制到slave節(jié)點(diǎn)普通用戶的~/.kube下

10、查看節(jié)點(diǎn)情況
   
   
   #開始可能會出現(xiàn)node節(jié)點(diǎn)NotReady,等待鏡像拉取完畢會變?yōu)镽eady
    kubectl get node

怎樣搭一個K8s集群

此時一主一從的k8s集群已經(jīng)搭建完畢。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI