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