kubeedge安装--ubuntu 20.04

57 阅读3分钟

kubeedge安装 --ubuntu 20.04****

一、主节点安装****

1、环境准备****

# 关闭防火墙****

sudo ufw disable

sudo systemctl stop ufw

sudo systemctl disable ufw

 

# 禁用 swap****

sudo swapoff -a

sudo sed -i '/\sswap\s/s/^/#/' /etc/fstab

 

# 加载内核模块****

sudo modprobe overlay

sudo modprobe br_netfilter

cat <<EOF | sudo tee /etc/modules

overlay

br_netfilter

EOF

 

# 配置网络参数****

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

net.ipv4.ip_forward = 1

EOF

 

# 应用配置****

sudo apt update && sudo apt install -y procps

sudo sysctl --system

 

2、安装docker****

 

# 设置 Docker 的 apt 仓库 (官方与下面阿里云仓库设置二选一)

 

sudo apt-get update

sudo apt-get install ca-certificates curl

sudo install -m 0755 -d /etc/apt/keyrings

sudo curl -fsSL download.docker.com/linux/ubunt… -o /etc/apt/keyrings/docker.asc

sudo chmod a+r /etc/apt/keyrings/docker.asc

 

echo \

  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] download.docker.com/linux/ubunt… \

  (. /etc/os-release && echo "{UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \

  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

# 设置阿里云Docker镜像仓库 ( 可选 )****

sudo mkdir -p /etc/apt/keyrings

curl -fsSL mirrors.aliyun.com/docker-ce/l… | sudo gpg --dearmor -o /etc/apt/keyrings/docker-aliyun.gpg

 

echo \

  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker-aliyun.gpg] \

  mirrors.aliyun.com/docker-ce/l… \

  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

 

sudo apt-get update

 

# 安装docker****

sudo apt-get install -y docker-ce docker-ce-cli  docker-buildx-plugin docker-compose-plugin

# 配置 docker

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<EOF

{

  "exec-opts": ["native.cgroupdriver=systemd"],

  "log-driver": "json-file",

  "log-opts": {"max-size": "100m"},

  "storage-driver": "overlay2",

  "registry-mirrors": [

"docker-0.unsee.tech",

"dockerhub.timeweb.cloud"

  ]

}

EOF

 

# 启动 Docker

sudo systemctl daemon-reload

sudo systemctl enable docker --now

 

3、 安装 cri-dockerd****

# 下载最新版本(以 v0.3.4 为例) ( 这里不同的系统架构选择不同的包 )

wget github.com/Mirantis/cr…

 

 

# 安装 RPM 包****

sudo apt-get install -y cri-dockerd_0.3.4.3-0.ubuntu-focal_amd64.deb 

# 修改配置文件****

sudo sed -i '/^ExecStart=/ s|--container-runtime-endpoint fd://|--pod-infra-container-image registry.k8s.io/pause:3.9|' /usr/lib/systemd/system/cri-docker.service

 

# 覆盖现有 crictl 配置****

sudo tee /etc/crictl.yaml <<EOF

runtime-endpoint: unix:///var/run/cri-dockerd.sock

image-endpoint: unix:///var/run/cri-dockerd.sock

timeout: 5

debug: false

EOF

 

# 重新加载 systemd****

sudo systemctl daemon-reload

 

启动服务

sudo systemctl enable --now cri-docker

 

检查配置

cat /etc/crictl.yaml

 

测试连接

sudo crictl ps

 

 

4、 安装 k8s****

# 这里安装 k8sv1.29.0, 安装不同的版本可以修改下面加粗部分仓库配置地址的版本号,请注意 k8s 版本和kubedge版本的兼容性****

 

# 仓库配置****

echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.2 9 /deb/ / " | sudo tee /etc/apt/sources.list.d/kubernetes.list

 

mkdir -p /etc/apt/keyrings

 

curl -fsSL pkgs.k8s.io/core:/stabl… | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

 

sudo apt-get update

 

# 安装 kubelet kubeadm kubectl****

sudo apt-get install -y kubelet=1.29.0-1.1 kubeadm=1.29.0-1.1 kubectl=1.29.0-1.1

 

# 初始化 Master 节点****

​​****

# 生成初始化配置文件​​

kubeadm config print init-defaults > kubeadm.yaml

# 修改关键配置 ,下面的 <MASTER_IP> 修改为自己的节点IP****

sed -i 's/advertiseAddress: 1.2.3.4/advertiseAddress: <MASTER_IP> /' kubeadm.yaml
sed -i 's/name: node/name: k8s-master/' kubeadm.yaml

 

cat <> kubeadm.yaml

apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd
EOF

​​

 

# 将criSocket的值改为:unix:///var/run/cri-dockerd.sock****

sudo sed -i 's|unix:///var/run/cri-dockerd.sock|unix:///run/containerd/containerd.sock|g' kubeadm.yaml

  

# 初始化集群 ​​****

sudo kubeadm init --config=kubeadm.yaml --upload-certs | tee kubeadm-init.log

​​

 

 

# 配置 kubectl​​****

mkdir -p HOME/.kubesudocpi/etc/kubernetes/admin.confHOME/.kube sudo cp -i /etc/kubernetes/admin.conf HOME/.kube/config
sudo chown (idu):(id -u):(id -g) $HOME/.kube/config

 

# 安装calico****

kubectl apply -f raw.githubusercontent.com/projectcali…

 

# 验证 Calico 安装 ​ 

kubectl get pods -n kube-system -w 

5、 安装keadm****

# 获取 KubeEdge 1.19.2 安装文件 ****

wget github.com/kubeedge/ku…

 

tar -xvf keadm-v1.19.2-linux-amd64.tar.gz

cd keadm-v1.19.2-linux-amd64/keadm

sudo cp keadm /usr/local/bin/

 

6、 云端安装(CloudCore) ​​

# 初始化云端​****

# 如在master节点安装 移除污点****

kubectl taint nodes k8smaster node-role.kubernetes.io/control-plane:NoSchedule-

 

 

# 初始化 ,下面的 <MASTER_IP> 修改为自己的节点ip********

sudo keadm init \

  --kube-config=$HOME/.kube/config \

  --advertise-address=<MASTER_IP> \

  --kubeedge-version=1.19.2 \

  --set cloudcore.image.repository=registry.cn-hangzhou.aliyuncs.com/kubeedge/cloudcore \

  --set cloudcore.image.tag=v1.19.2

 

sudo keadm init --advertise-address=<MASTER_IP> --kube-config=$HOME/.kube/config --set iptablesManager.mode="external"  --kubeedge-version=1.19.2

 

# 打标签防止云端的一些 damonset pod 调度到边缘端****

 kubectl get daemonset -n kube-system |grep -v NAME |awk '{print $1}' | xargs -n 1 kubectl patch daemonset -n kube-system --type='json' -p='[{"op": "replace","path": "/spec/template/spec/affinity","value":{"nodeAffinity":{"requiredDuringSchedulingIgnoredDuringExecution":{"nodeSelectorTerms":[{"matchExpressions":[{"key":"node-role.kubernetes.io/edge","operator":"DoesNotExist"}]}]}}}}]'

 

 

# 安装 metrics -server, 便于查看边缘节点的 pod 日志****

 kubectl apply -f github.com/kubernetes-…

 

# 如果 镜像拉不下来 可选 ****

docker pull registry.aliyuncs.com/google_containers/metrics-server:v0.7.2

docker tag registry.aliyuncs.com/google_containers/metrics-server:v0.7.2 registry.k8s.io/metrics-server/metrics-server:v0.7.2

 

 

# 忽略 metrics -server的tls证书校验

 kubectl patch deploy metrics-server -n kube-system --type='json' -p='[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value":"--kubelet-insecure-tls"}]'

 

二、边缘点安装****

1、环境准备****

重复主节点上的步骤1-3,即环境准备、安装docker、 安装 cri-dockerd****

2 、安装cni****

sudo mkdir -p /opt/cni/bin

sudo tar -C /opt/cni/bin -xzvf cni-plugins-linux-arm64-v1.1.1.tgz

sudo mkdir -p /etc/cni/net.d

 

sudo vim /etc/cni/net.d/10-containerd-net.conflist

{

  "cniVersion": "1.0.0",

  "name": "containerd-net",

  "plugins": [

    {

      "type": "bridge",

      "bridge": "cni0",

      "isGateway": true,

      "ipMasq": true,

      "promiscMode": true,

      "ipam": {

        "type": "host-local",

        "ranges": [

          [{

            "subnet": "10.88.0.0/16"

          }],

          [{

            "subnet": "2001:db8:4860::/64"

          }]

        ],

        "routes": [

          { "dst": "0.0.0.0/0" },

          { "dst": "::/0" }

        ]

      }

    },

    {

      "type": "portmap",

      "capabilities": {"portMappings": true}

    }

  ]

}

3、 安装keadm****

重复主节点步骤5 安装keadm****

4、执行join命令****

sudo rm -rf /etc/kubeedge/

 

# CLOUD_CORE_IPPORT ,主节点+默认端口号10000,如10.32.6.65:10000****

# EDGE_NODE_NAME 自定义边缘节点名称,不可重复****

sudo ./keadm join \

    --cloudcore-ipport= ${CLOUD_CORE_IPPORT}  \

    --token=${TOKEN} \

    --kubeedge-version=1.19.2 \

    --edgenode-name= ${EDGE_NODE_NAME}  \

    --remote-runtime-endpoint=unix:///var/run/cri-dockerd.sock \

    --cgroupdriver=systemd

另有一键离线安装包可私信领取