0%

1. 准备

1.1 依赖
Mosquitto apt-get 安装 边缘端
GO https://dl.google.com/go/go1.16.2.linux-amd64.tar.gz 云端、边缘端
K8S 云端
KubeEdge https://github.com/kubeedge/kubeedge/releases 云端、边缘端
Docker 官方安装脚本安装 云端、边缘端
1.2 禁用防火墙
1
sudo systemctl disable firewalld
1.3 永久禁用SELinux
1
2
sudo sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux
SELINUX=disabled
1.4 关闭SWAP
1
2
sudo sed -i 's/.*swap.*/#&/' /etc/fstab
#/dev/mapper/centos-swap swap swap defaults 0 0

2. Docker 安装

2.1 卸载旧版本
1
sudo apt-get remove docker docker-engine docker.io containerd runc
2.2 设置仓库
1
2
3
4
5
6
7
8
9
10
sudo lsb_release -cs # 查看系统版本
sudo curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo cat <<EOF >/etc/apt/sources.list.d/docker.list
deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable
deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ $(lsb_release -cs) stable
deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable
deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable
deb [arch=amd64] https://repo.huaweicloud.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable
deb [arch=amd64] http://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable
EOF
2.3 Docker镜像加速

打开/etc/docker/daemon.json,增加或修改registry-mirrors节点

示例:

1
2
3
4
5
6
7
8
{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]

}
2.4 安装
1
2
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
2.5 设 置机启动
1
2
sudo systemctl enable docker 
sudo systemctl start docker.service

3. K8S 安装

3.1 添加源
1
2
3
4
5
6
7
8
9
sudo curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
sudo cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
deb https://mirrors.ustc.edu.cn/kubernetes/apt/ kubernetes-xenial main
deb https://mirrors.tuna.tsinghua.edu.cn/kubernetes/apt/ kubernetes-xenial main
deb https://mirrors.cloud.tencent.com/kubernetes/apt kubernetes-xenial main
deb https://repo.huaweicloud.com/kubernetes/apt/ kubernetes-xenial main
EOF
apt-get update
3.2 安装
1
2
sudo apt-get update 
sudo apt-get install kubelet kubeadm kubectl
3.3 配置内核参数
1
2
3
4
5
6
7
8
9
sudo cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness=0
EOF

sysctl --system
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf
3.4 初始化
1
sudo kubeadm init --pod-network-cidr 192.168.50.0/24 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers

然后执行 docker images 命令查看需要的镜像是否都准备好了。

1
2
3
4
5
6
7
8
REPOSITORY                           TAG                 IMAGE ID            CREATED             SIZE
k8s.gcr.io/kube-proxy v1.17.2 cba2a99699bd 2 weeks ago 116MB
k8s.gcr.io/kube-apiserver v1.17.2 41ef50a5f06a 2 weeks ago 171MB
k8s.gcr.io/kube-controller-manager v1.17.2 da5fd66c4068 2 weeks ago 161MB
k8s.gcr.io/kube-scheduler v1.17.2 f52d4c527ef2 2 weeks ago 94.4MB
k8s.gcr.io/coredns 1.6.5 70f311871ae1 3 months ago 41.6MB
k8s.gcr.io/etcd 3.4.3-0 303ce5db0e90 3 months ago 288MB
k8s.gcr.io/pause
3.5 创建配置文件
1
2
3
sudo mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
3.6 安装calico插件
1
2
3
4
5
kubectl apply -f https://docs.projectcalico.org/v3.11/manifests/calico.yaml

#查看
kubectl get nodes
kubectl get pods --all-namespaces
3.7 安装Dashboard

下载https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta5/aio/deploy/recommended.yaml文件并修改其中部分内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#增加直接访问端口
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
type: NodePort #增加
ports:
- port: 443
targetPort: 8443
nodePort: 30008 #增加
selector:
k8s-app: kubernetes-dashboard
3.7.2 创建证书
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mkdir dashboard-certs

cd dashboard-certs/

#创建命名空间
kubectl create namespace kubernetes-dashboard

# 创建key文件
openssl genrsa -out dashboard.key 2048

#证书请求
openssl req -days 36000 -new -out dashboard.csr -key dashboard.key -subj '/CN=dashboard-cert'

#自签证书,可能报错不要管他
openssl x509 -req -in dashboard.csr -signkey dashboard.key -out dashboard.crt

#创建kubernetes-dashboard-certs对象
kubectl create secret generic kubernetes-dashboard-certs --from-file=dashboard.key --from-file=dashboard.crt -n kubernetes-dashboard
3.7.3 安装Dashboard
1
2
3
4
5
6
7
#安装
kubectl create -f $HOME/recommended.yaml

#检查结果
kubectl get pods -A -o wide

kubectl get service -n kubernetes-dashboard -o wide
3.7.4 创建Dashboard管理员
1
2
# 创建账号
vi $HOME/dashboard-admin.yaml
1
2
3
4
5
6
7
8
# 写入
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
k8s-app: kubernetes-dashboard
name: dashboard-admin
namespace: kubernetes-dashboard
1
2
#保存退出后执行
kubectl create -f $HOME/dashboard-admin.yaml

为用户分配权限

1
vi $HOME/dashboard-admin-bind-cluster-role.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: dashboard-admin-bind-cluster-role
labels:
k8s-app: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: dashboard-admin
namespace: kubernetes-dashboard
1
2
#保存退出后执行
kubectl create -f $HOME/dashboard-admin-bind-cluster-role.yaml
3.7.5 访问
1
2
# 查看并复制token
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep dashboard-admin | awk '{print $1}')

访问 https://{ip}:30008,输入token即可

4. GoLang 环境搭建

4.1 安装golang
1
2
wget https://dl.google.com/go/go1.16.2.linux-amd64.tar.gz
sudo tar -zxvf go1.16.2.linux-amd64.tar.gz -C /usr/local

添加环境变量

编辑/etc/profile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#文件末尾加上
export GOROOT=/usr/local/go
export GOPATH=/data/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

#刷新
source /etc/profile
mkdir -p /data/gopath && cd /data/gopath
mkdir -p src pkg bin

#配置root 环境变量
sudo vim /etc/sudoers
#在secure_path中添加
:/usr/local/go/bin:/data/gopath/bin

#检查go环境
go version
4.2 安装make gcc
1
sudo apt-get install make gcc

5. 安装KubeEdge

5.1 部署CloudCore
5.1.1 下载源码
1
git clone https://github.com/kubeedge/kubeedge.git $GOPATH/src/github.com/kubeedge/kubeedge

编译云端

1
2
cd $GOPATH/src/github.com/kubeedge/kubeedge/
make all WHAT=cloudcore
5.1.2 编译keadm
5.1.3 创建cloud节点
5.1.4 查看CloudCore状态
5.1.5 获取Token