KubeEdge 本小白的苦痛部署
虛擬機建立
第一步:建立兩臺虛擬機,本文使用的是centos7。通過前幾回的失敗教訓,將磁盤空間設置的大一點40G,內存4GB,處理器4核。(最小安裝便可)
兩臺虛擬機一臺做爲master一臺做爲node1
第二步:建立完成後登陸名須要記住!一會XSHELL使用的登陸名就是這個登陸名!虛擬機登錄完成後必須先輸入
javascript
echo ONBOOT=yes >> /etc/sysconfig/network-scripts/ifcfg-ens33 #centos7打開網關的方法,輸完之後要在使用一次 ip addr 查看一下地址否則不生效
輸完後重啓虛擬機java
XSHELL登錄方式
鏈接兩臺虛擬機,主機部分填寫虛擬機的ip地址
虛擬機的ip地址查詢方式:ip addr
(通常是192開頭的那個)
若是鏈接成功就會提示輸入用戶名,用戶名就是剛剛登錄虛擬機時輸入的用戶名,密碼就是登錄時輸入的密碼。(這裏建議記住用戶名和密碼,下次登錄就會方便不少)
node
k8s部署
剛開始跟着官網的操做作了n次都失敗了,看了不少帖子因而選擇用部署kubernetes的方式進行部署master節點。(k8s部署的文件均來自於尚硅谷,具體操做也能夠觀看b站視頻BV1GT4y1A756
,具體連接https://www.bilibili.com/video/BV1GT4y1A756?p=7
)再次感謝尚硅谷!!良心!!!能夠從第6集開始看(只看master節點佈置部分便可)
配置兩臺節點都須要配置的信息(選擇發送鍵輸入…可使全部節點共享輸入信息)
linux
# 安裝wget指令 $yum install wget # 關閉防火牆 $systemctl stop firewalld $systemctl disable firewalld # 關閉selinux $sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久 $setenforce 0 # 臨時 # 關閉swap $swapoff -a # 臨時 $sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久 # 根據規劃設置主機名(<hostname>處填寫本身想規定的名字,本文將master節點命名爲m1,edge節點命名爲m2。注:這<>兩個符號不用輸) $hostnamectl set-hostname <hostname> # 在master添加hosts(注:此處的ip地址寫兩臺虛擬機的ip地址,名稱寫上一步設置的主機名,而且這一步操做僅在master節點內操做) $cat >> /etc/hosts << EOF 192.168.44.146 k8smaster 192.168.44.145 k8snode1 192.168.44.144 k8snode2 EOF # 將橋接的IPv4流量傳遞到iptables的鏈 $cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF $sysctl --system # 生效 # 時間同步 $yum install ntpdate -y $ntpdate time.windows.com
安裝docker,同時也是兩個節點都要安裝git
$ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo $ yum -y install docker-ce-18.06.1.ce-3.el7 $ systemctl enable docker && systemctl start docker $ docker --version Docker version 18.06.1-ce, build e68fc7a
$ cat > /etc/docker/daemon.json << EOF { "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"] } EOF
添加阿里雲YUM軟件源github
$ cat > /etc/yum.repos.d/kubernetes.repo << EOF [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=0 repo_gpgcheck=0 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF
安裝kubeadm,kubelet和kubectl(用比較穩定的版本)golang
$ yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0 $ systemctl enable kubelet
部署Kubernetes Master
因爲默認拉取鏡像地址k8s.gcr.io國內沒法訪問,這裏指定阿里雲鏡像倉庫地址docker
$ kubeadm init \ --apiserver-advertise-address=192.168.213.129 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.18.0 \ --service-cidr=10.96.0.0/12 \ --pod-network-cidr=10.244.0.0/16 #注意第一條命令要把ip地址改爲master的ip地址 #其餘指令的ip地址只要不和master的地址衝突便可 #而且要把每句指令後的\刪除掉,再所有複製到xshell中執行
若是出現圖中語句,則說明成功了,而且複製圖中標白部分並執行
完成後輸入
shell
$kubectl get node
會發現此時的master節點是NotReady狀態,而後咱們就須要部署CNI網絡插件json
部署網絡插件CNI
$kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml #這條指令可能會失敗,能夠多試幾回(本身當時試了七八次才成功) #若是出現關於swap的錯誤就輸入 swapoff -a $kubectl get pods -n kube-system #這條指令用於查看文件的拉取情況 NAME READY STATUS RESTARTS AGE kube-flannel-ds-amd64-2pc95 1/1 Running 0 72s
必定要耐心等!!!由於本身用的是校園網,有一次等了2個小時…
成功後如圖
$wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml $ubectl apply -f kube-flannel.yml #這兩句命令是在上面語句實在執行不了的時候再進行使用
此時再使用
$kubeclt get node
如圖則說明master節點部署成功了!
edge端的Mosquitto安裝
更新yum源
$yum -y update
添加EPEL軟件庫
$yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
下載mosquitto
$yum -y install mosquitto
KubeEdge的安裝與配置
在master端執行便可
下載golang
$wget https://golang.google.cn/dl/go1.15.3.linux-amd64.tar.gz #若是這步下的慢能夠本身上官網下 $tar -zxvf go1.15.3.linux-amd64.tar.gz -C /usr/local
配置golang環境
$vim /etc/profile #這一步不成功可能須要更新vim 指令爲 yum -y install vim-enhanced #把下面這段複製到文本末尾 export HOME=/root export GOROOT=/usr/lib/go export GOPATH=/usr/local/go export PATH=$PATH:$GOPATH/bin #按鍵盤上的Ins鍵爲輸入,複製好之後按ESC,再按shift + : ,輸入wq!便可保存退出
繼續輸入
$source /etc/profile $mkdir -p /data/gopath && cd /data/gopath $mkdir -p src pkg bin
下載KubeEdge源碼
$git clone https://github.com/kubeedge/kubeedge $GOPATH/src/github.com/kubeedge/kubeedge #git指令安裝: yum install -y git #下載失敗就多試幾回
keadm安裝
keadm的安裝這個大佬已經講的很清楚了,跟着步驟走就行,文中提示會出錯的地方要在cloud端和edge端都進行修改,不能只修改cloud端!!!
連接:[link]
當修改完錯誤並執行./keadm init
後,下載也會很慢(至少個人校園網是這樣的…),耐心等待,按照步驟先進行cloud端的再進行edge端的
都結束後輸入
$kubectl get node
成功啦!
總結
搭環境這個環節用了很長的時間,遇到了不少的坑,也是受到了網上不少文章視頻的幫助,秉持開源理念,因此想要把這個過程記錄下來分享給你們來也方便之後本身再看。本身是第一次接觸邊緣計算方面的知識,因此不少方面都不是那麼熟悉,若是大佬們發現文中哪裏寫的有問題還請指出,但願可以幫到你們!(本身的文字功底也很通常,若是哪裏有看不懂或者指令有問題請評論私信告知我)
參考的文章及視頻
《KubeEdge邊緣計算框架,小白也能部署了!》連接:link
《Kubeedge1.4.0安裝》連接:link
《解決GitHub的raw.githubusercontent.com沒法鏈接問題》連接:link
《KubeEdge v1.3部署指南!》連接:link
《k8s教程由淺入深-尚硅谷》連接:link