1. 准备 1.1 依赖
1.2 禁用防火墙 1 sudo systemctl disable firewalld
1.3 永久禁用SELinux 1 2 sudo sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinuxSELINUX=disabled
1.4 关闭SWAP 1 2 sudo sed -i 's/.*swap.*/#&/' /etc/fstab
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 updatesudo 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 3.7.1 下载 recommended.yaml 下载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-certscd dashboard-certs/kubectl create namespace kubernetes-dashboard 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 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 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/goexport GOPATH=/data/gopathexport PATH=$PATH :$GOROOT /bin:$GOPATH /binsource /etc/profilemkdir -p /data/gopath && cd /data/gopathmkdir -p src pkg binsudo vim /etc/sudoers:/usr/local/go/bin:/data/gopath/bin 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