搭一個K8s集羣

在公司一直用的現成的kubernetes環境,封裝的組件很多,這次嘗試本身搭一個輕量級的環境,踩了好多坑,下面經驗奉上。


前置要求:
    兩臺主機,能夠是雲服務器、虛擬機,網絡要互通,內存最好大於 2GB,主機上都要提早安裝Docker。

下面我使用的兩臺主機。

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


搭建過程


一、首先在兩臺主機配置阿里雲鏡像源地址


#進入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

二、設置兩臺主機SELinux爲disable,設置swap進禁用

   
   
    
    
             
    
    
#禁用SELinuxsetenforce 0#禁用swap,因爲啓動swap會產生性能問題,因此k8s默認禁用swapsed -ri 's/.*swap.*/#&/' /etc/fstabswapoff -a


三、在兩臺主機分別安裝kubeadm,kubelet,kubectl

yum install -y kubelet kubeadm kubectl

四、兩臺主機設置開機自啓


   
   
    
    
             
    
    
systemctl enable kubelet.service


五、建立集羣


   
   
    
    
             
    
    
#在準備做爲master節點的主機運行命令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 設置pod區間,不設置也可正常工做# --ignore-preflight-errors 若是預檢出現錯誤能夠忽略



此時能夠看到各個組件已經啓動起來了



若是上一步出現錯誤,須要重置kubeadm

   
   
    
    
             
    
    
kubeadm reset


六、可是此時kubectl命令行不能用,須要將kubeconfig複製到指定位置


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

此時查看集羣信息
   
   
    
    
             
    
    
kubectl get node


能夠看到是NotReady,緣由是沒有準備CNI網絡插件

七、安裝CNI網絡插件


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


等待安裝完成。

稍候再查看master,狀態爲Ready



八、node節點的加入


   
   
    
    
             
    
    
#首先在master獲取token,在master執行kubeadm token list#若是token已通過期,體現爲找不到token,執行如下命令生成tokenkubeadm token create #生成token 


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/^.* //'



slave上執行kubeadm join


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

查看終端



   
   
    
    
             
    
    
注:若是遇到下圖錯誤執行命令echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables


九、在node節點使用kubeconfig

master節點的kubeconfig文件複製到slave節點普通用戶的~/.kube

十、查看節點狀況
   
   
    
    
             
    
    
#開始可能會出現node節點NotReady,等待鏡像拉取完畢會變爲Readykubectl get node


此時一主一從的k8s集羣已經搭建完畢。


後臺回覆「加羣」,帶你進入高手如雲交流羣javascript


推薦閱讀:java

一文讀懂你身邊的網絡
node

Linux 環境變量配置全攻略
nginx

如何定位軟中斷CPU使用率太高的問題?
web

10大高性能開發利器
centos

安全容器gVisor詳解
安全

TCP協議靈魂 12 問,總會用獲得
ruby

QUIC也不是萬能的bash

超詳乾貨!Linux環境變量配置全攻略
服務器

爲何要選擇智能網卡?

60,000毫秒內對Linux進行性能診斷

爲何Linux須要Swapping

Linux系統經常使用命令速查手冊

一文讀懂容器網絡發展

一文搞懂CDN加速原理

8 個問題完全搞透 DNS 協議

三張圖完全搞懂iptables和netfilter

故障排查:K8s中Pod沒法正常解析域名

網絡排錯大講解~

OVS 和 OVS-DPDK 對比

微軟出品的最新K8S學習指南3.0下載



喜歡,就給我一個「在看」



10T 技術資源大放送!包括但不限於:雲計算、虛擬化、微服務、大數據、網絡、Linux、Docker、Kubernetes、Python、Go、C/C++、Shell、PPT 等。在公衆號內回覆「1024,便可免費獲取!!

本文分享自微信公衆號 - Linux雲計算網絡(cloud_dev)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索