本文只针对Centos7.x版本。

准备工具:两台服务器,putty(xshell等),如缺少git,wget等命令自行安装。

注意:服务器至少是2G内存2CPU。

所有主机配置如下

IP地址主机名节点角色版本安装方式
149.28.121.58mastercloudcore(云端)V1.18.0kubeadm
140.82.30.33node1edgecore(边端)V1.18.0kubeadm

第一步:配置云端

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的搭建,点个赞再走吧!

(有问题可评论留言,不定时解答)

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐