实操kubeadm基于k8s安装部署KubeEdge全过程 V1.13.0
本文只针对Centos7.x版本。准备工具:vultr两台国外服务器,putty(xshell等),如缺少git,wget等命令自行安装。注意:服务器至少是2G内存2CPU。所有主机配置如下IP地址主机名节点角色版本安装方式149.28.121.58mastercloudcore(云端)V1.18.0kubeadm140.82.30.33node1edgecore(边端)V1.18.0
本文只针对Centos7.x版本。
准备工具:两台服务器,putty(xshell等),如缺少git,wget等命令自行安装。
注意:服务器至少是2G内存2CPU。
所有主机配置如下
IP地址 | 主机名 | 节点角色 | 版本 | 安装方式 |
---|---|---|---|---|
149.28.121.58 | master | cloudcore(云端) | V1.18.0 | kubeadm |
140.82.30.33 | node1 | edgecore(边端) | V1.18.0 | kubeadm |
第一步:配置云端
1.1修改主机名(可选)
hostnamectl set-hostname master
1.2关闭 firewalld 防火墙(允许边云的网络通信)
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
1.3关闭 SElinux 安全模组(让容器可以读取宿主机的文件系统)
setenforce 0
sed -i.bak`date +%F` 's|SELINUX=.*|SELINUX=disabled|g' /etc/selinux/config
1.4关闭 Swap 交换分区 (启用了 Swap,则 Qos 策略可能会失效)
swapoff -a && sed -i.bak "s/\/dev\/mapper\/centos-swap/\#\/dev\/mapper\/centos-swap/g" /etc/fstab
1.5安装docker容器
## Install required packages.
yum install -y yum-utils device-mapper-persistent-data lvm2
## Add Docker repository.
yum-config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
## Install Docker CE.
yum update -y && yum install -y \
containerd.io-1.2.10 \
docker-ce-19.03.4 \
docker-ce-cli-19.03.4
## Create /etc/docker directory.
mkdir -p /etc/docker
# Setup daemon.
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=cgroupfs"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
EOF
mkdir -p /etc/systemd/system/docker.service.d
# Restart Docker
systemctl daemon-reload
systemctl restart docker
1.6安装 Kubeadm 和相关工具
注:不需要更改yum为阿里源。
注:kubectl仅仅是个二进制文件而已即 /usr/bin/kubectl
yum install -y kubelet kubeadm kubectl –disableexcludes=kubernetes
启动 Kubelet
systemctl start kubelet && systemctl enable kubelet
初始化kubeadm,并记录下最后的输出日志
kubeadm init
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 149.28.121.58:6443 --token rthklc.ghvn8uf375cstxrj \
--discovery-token-ca-cert-hash sha256:7169f65e9e641f40680e95588e0fbe7e384fab5046541015e8979f534e61551c
执行上面输出的命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
1.7安装KubeEdge
自行安装golang环境,参考链接(https://www.cnblogs.com/lianggx6/p/12503511.html)
安装git命令(yum install git -y)
#这个有点慢,要稍等一下,还没有输出
go get github.com/kubeedge/kubeedge/keadm/cmd/keadm
安装的 `keadm` 二进制文件会在 `$GOPATH/bin/`
然后执行下面命令,#149.28.121.58 是你当前云端的主机ip
keadm init --advertise-address=149.28.121.58
运行成功,有问题可以去/var/log/kubeedge/cloudcore.log 查看日志
第二步:配置边端
1.1修改主机名(可选)
如果有多个的话 可以配置不同的名字
hostnamectl set-hostname node1
1.2关闭 firewalld 防火墙(允许边云的网络通信)
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
1.3关闭 SElinux 安全模组(让容器可以读取宿主机的文件系统)
setenforce 0
sed -i.bak`date +%F` 's|SELINUX=.*|SELINUX=disabled|g' /etc/selinux/config
1.4关闭 Swap 交换分区 (启用了 Swap,则 Qos 策略可能会失效)
swapoff -a && sed -i.bak "s/\/dev\/mapper\/centos-swap/\#\/dev\/mapper\/centos-swap/g" /etc/fstab
1.5安装docker容器
## Install required packages.
yum install -y yum-utils device-mapper-persistent-data lvm2
## Add Docker repository.
yum-config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
## Install Docker CE.
yum update -y && yum install -y \
containerd.io-1.2.10 \
docker-ce-19.03.4 \
docker-ce-cli-19.03.4
## Create /etc/docker directory.
mkdir -p /etc/docker
# Setup daemon.
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=cgroupfs"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
EOF
mkdir -p /etc/systemd/system/docker.service.d
# Restart Docker
systemctl daemon-reload
systemctl restart docker
1.6安装KubeEdge
自行安装golang环境,参考链接(https://www.cnblogs.com/lianggx6/p/12503511.html)
安装git命令(yum install git -y)
#这个有点慢,要稍等一下,还没有输出
go get github.com/kubeedge/kubeedge/keadm/cmd/keadm
安装的 `keadm` 二进制文件会在 `$GOPATH/bin/`
执行下面命令,加入云端
#其中149.28.121.58 是你的云端主机ip
#token是在云端 执行命令 keadm gettoken 可以获取
将--cloudcore-ipport 和 --token修改后执行下面命令
keadm join --cloudcore-ipport=149.28.121.58:10000 --token=997c5088fbf405a0c811deaab11b4b1c6c7080ee8aab7623470e9e6f7be6315b.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTA1NTkwMjR9.B11ModE_fMZ0-v-z08vsLHPUd-eHQ-Y9UQzEAL4QMGw
同样,有问题可以查看日志 /var/log/kubeedge/edgecore.log
第三步 验证结果
至此,一台云端,一台边端已经部署完毕。
下面我们验证一下
在云端执行命令
kubectl get nodes
恭喜你!成功完成KubeEdge的搭建,点个赞再走吧!
(有问题可评论留言,不定时解答)
更多推荐
所有评论(0)