KubeEdge BenXiaobaiの苦痛な展開
仮想マシンの作成
最初のステップ:2つの仮想マシンを作成します。この記事ではcentos7を使用します。前の失敗とレッスンの後、ディスクスペースはより大きな40Gに設定され、メモリは4GBで、プロセッサは4コアです。(最小限のインストールで十分です)
2つの仮想マシン(1つはマスター、もう1つはノード1)。
ステップ2:作成が完了したら、ログイン名を覚えておく必要があります。XSHELLが使用するログイン名はこのログイン名です!仮想マシンのログインが完了した後に入力する必要があります
echo ONBOOT=yes >> /etc/sysconfig/network-scripts/ifcfg-ens33
#centos7打开网关的方法,输完以后要在使用一次 ip addr 查看一下地址不然不生效
入力後に仮想マシンを再起動します
XSHELLログイン方法
2つの仮想マシンを接続
し、ホストセクションに仮想マシンのIPアドレスを入力します。仮想マシンのIPアドレスクエリ方法:(ip addr
通常は192で始まる方法)
接続が成功すると、ユーザー名を入力するように求められます。ユーザー名は、仮想マシンにログインするときに入力されます。ユーザー名とパスワードは、ログイン時に入力するパスワードです。(ユーザー名とパスワードを覚えておくことをお勧めします。次回のログインに非常に便利です)
k8sの展開
当初、公式サイトの運用をn回行って失敗しましたが、多くの投稿を読んだ後、kubernetesを導入してマスターノードを導入することにしました。(k8sによってデプロイされたファイルはすべてShang Silicon Valleyからのものです。特定の操作のBV1GT4y1A756
特定のリンクであるステーションbのビデオも見ることができhttps://www.bilibili.com/video/BV1GT4y1A756?p=7
ます。)Shang Silicon Valleyにもう一度感謝します!!良心!!!エピソード6から開始できます(マスターノードのレイアウト部分を見
てください)。両方のノードに構成する必要のある情報を構成します(入力する送信キーを選択します...すべてのノードが入力情報を共有できます)
# 安装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をインストールしますが、両方のノードもインストールします
$ 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ソフトウェアソースを追加
$ 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をインストールします(より安定したバージョンを使用します)
$ yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
$ systemctl enable kubelet
Kubernetesマスターを展開する
中国ではデフォルトのプルミラーアドレスk8s.gcr.ioにアクセスできないため、ここでAlibabaCloudミラーウェアハウスアドレスを指定します
$ 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中执行
図のステートメントが表示された場合、それは成功を意味し、図の白い部分をコピーして実行
します。
$kubectl get node
この時点でマスターノードがNotReady状態になっていることがわかります。次に、CNIネットワークプラグインを展開する必要があります。
ネットワークプラグイン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
この図は、マスターノードの展開が成功したことを示しています。
エッジへのモスキートの取り付け
yumソースを更新する
$yum -y update
EPELソフトウェアライブラリを追加する
$yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
モスキートをダウンロード
$yum -y install mosquitto
KubeEdgeのインストールと構成
マスター側で実行して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のインストールはすでに非常に明確です。手順に従ってください。記事のエラーは、クラウド側だけでなく、クラウド側とエッジ側で変更する必要があります。!!
リンク:[リンク]
エラーが修正されて実行された./keadm init
後、ダウンロードは非常に遅くなります(少なくとも私のキャンパスネットワークはこのようなものです...)、辛抱強く待って、最初にクラウド側を実行し、次にエッジ側を実行する手順に従います。
終了後に入力します
$kubectl get node
成功!
総括する
環境の構築に時間がかかり、多くの落とし穴に遭遇しました。また、インターネット上の多くの記事やビデオの助けを借りました。私はオープンソースの概念に準拠しているので、このプロセスを記録して、後で読むことができるようにみんなと共有したいと思います。私がエッジコンピューティングの知識に触れるのはこれが初めてなので、多くの側面があまり馴染みがありません。記事に何か問題がある場合は、指摘してください。お役に立てれば幸いです。(自分のライティングスキルも非常に一般的です。理解できないことがあったり、指示に問題がある場合は、コメントして知らせてください)
参考記事と動画
「KubeEdgeエッジコンピューティングフレームワーク、Xiaobaiも展開できます!「リンク:リンク
「Kubeedge1.4.0インストール」リンク:リンク
「GitHubのraw.githubusercontent.comを解決しても問題を接続できません」リンク:リンク
「KubeEdgev1.3導入ガイド!「リンク:リンク
「浅いものから深いものへのk8sチュートリアル-シリコンバレー」リンク:リンク