大家好,又见面了,我是你们的朋友全栈君。
前期准备
换源
# 备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 更新 sources.list
sudo tee /etc/apt/sources.list <<-'EOF'
deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe
EOF
sudo apt-get update
docker 安装(apt安装)
apt -y install docker.io
kubernetes 安装
关闭swapp
sudo sed -i '/ swap / s/^/#/' /etc/fstab
sudo swapoff -a
关闭防火墙
sudo ufw disable
安装 kubeadm, kubelet and kubectl
# 安装依赖
sudo apt-get update && apt-get install -y apt-transport-https
# 加载key
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
EOF
# 安装
sudo apt-get update
# apt-cache madison kubelet 命令可查找软件版本,制定版本安装
sudo apt-get install -y kubelet=1.18.0-00 kubeadm=1.18.0-00 kubectl=1.18.0-00
使用kubeadm 部署集群
# apiserver-advertise-address,pod-network-cidr根据本地环境修改
sudo kubeadm init --apiserver-advertise-address 192.168.0.49 \
--image-repository=registry.aliyuncs.com/google_containers \
--pod-network-cidr=10.244.0.0/16
如果看到如下提示,说明部署成功。记下这个条语句,将来的部署node节点时需要。
kubeadm join 192.168.0.49:6443 --token fkxju7.d39l2sct5bc4w5yo \
--discovery-token-ca-cert-hash sha256:28b467ec8f97537069724028c5d51650983b8bbc2ac29a6e52b210bb2d1896ff
配置本地用户执行权限
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
安装网络插件
kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml
k8s 默认不会调度到master节点上
kubectl taint nodes --all node-role.kubernetes.io/master-
到这里,kubernetes 集群就创建成功了
Kubeedge 安装 (二进制安装)
下载二进制文件并解压
wget https://github.com/kubeedge/kubeedge/releases/download/v1.3.1/kubeedge-v1.3.1-linux-amd64.tar.gz
tar -xzvf kubeedge-v1.3.1-linux-amd64.tar.gz
mv kubeedge-v1.3.1-linux-amd64 kubeedge-v1.3.1
安装crds
cd kubeedge/build/crds/devices
kubectl create -f devices_v1alpha1_devicemodel.yaml
kubectl create -f devices_v1alpha1_device.yaml
cd kubeedge/build/crds/reliablesyncs
kubectl create -f cluster_objectsync_v1alpha1.yaml
kubectl create -f objectsync_v1alpha1.yaml
拷贝二进制文件到/usr/local/bin/目录
cp kubeedge/cloud/cloudcore /usr/local/bin/
配置云端节点
mkdir -p /etc/kubeedge/config/
cloudcore --minconfig > /etc/kubeedge/config/cloudcore.yaml
修改配置文件
vim /etc/kubeedge/config/cloudcore.yaml
注意根据你的环境修改以下三处。
1)kubeConfig的值
2)master的值
3)advertiseAddress的值,修改为master节点的IP
cloudcore 注册为service
cp kubeedge/build/tools/cloudcore.service /etc/systemd/system
systemctl enable cloudcore
systemctl start cloudcore
云端安装完成
配置edge节点
安装 mosquitto
apt -y install mosquitto
apt-get install mosquitto-clients // 如果需要测试,则安装mqtt客户端
由于 KubeEdge 使用多个端口,故需用配置文件。服务端添加多端口:
vim /etc/mosquitto/conf.d/port.conf
port 1883
listener 1884
service mosquitto restart
可以用如下命令验证服务是否正常
mosquitto_pub -h <mqtt服务IP> -p 1884 -t "hello" -m "this is hello world"
拷贝二进制文件到/usr/local/bin/目录
cp kubeedge/cloud/edgecore /usr/local/bin/
云端获取token(云端执行)
kubectl get secret tokensecret -n kubeedge -oyaml
root@k8sMaster:~# kubectl get secret tokensecret -n kubeedge -oyaml
apiVersion: v1
data:
tokendata: MjkyOGJjMDQ4MjE4YWYyODk0OWFlOGYxNjQ4ZTY5MjQzYmY5N2ZmYTMxNTRlZGZlOWQ1MWI4YTAyYmRlMzY2YS5leUpoYkdjaU9pSklVekkxTmlJc0luUjVjQ0k2SWtwWFZDSjkuZXlKbGVIQWlPakUyTVRNNE9EZzNPREY5LnAwaXIxZmlGVUlzQ3R0ZGdFTHZ5b3pmc1l4SVM3eHZ0cnZLZjNfSWIzMmM=
kind: Secret
...
#解码
echo MjkyOGJjMDQ4MjE4YWYyODk0OWFlOGYxNjQ4ZTY5MjQzYmY5N2ZmYTMxNTRlZGZlOWQ1MWI4YTAyYmRlMzY2YS5leUpoYkdjaU9pSklVekkxTmlJc0luUjVjQ0k2SWtwWFZDSjkuZXlKbGVIQWlPakUyTVRNNE9EZzNPREY5LnAwaXIxZmlGVUlzQ3R0ZGdFTHZ5b3pmc1l4SVM3eHZ0cnZLZjNfSWIzMmM= | base64 -d
#输出
2928bc048218af28949ae8f1648e69243bf97ffa3154edfe9d51b8a02bde366a.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MTM4ODg3ODF9.p0ir1fiFUIsCttdgELvyozfsYxIS7xvtrvKf3_Ib32c
配置边缘节点
mkdir -p /etc/kubeedge/config
edgecore --minconfig > /etc/kubeedge/config/edgecore.yaml
修改边缘节点
# vim /etc/kubeedge/config/edgecore.yaml
注意4处地方。
- 修改edgehub下的token,为云端获取的token值
- 修改
websocket
下的server
,默认为127.0.0.1:10000
,需改为实际云端 IP 地址,此处为192.168.0.49:10000
。 - 修改(确认)
podSandboxImage
,X86平台为podSandboxImage: kubeedge/pause:3.1
(默认),ARM 平台根据位数不同,可设为kubeedge/pause-arm:3.1
或ubeedge/pause-arm64:3.1
。 - 填写 edgeHub 下的 token 值,见 3.2.2 小节生成的结果。
其它要点:cgroup 驱动默认值为:cgroupDriver: cgroupfs
,无须改 Docker 配置。网络设备接口名称及 IP 地址,会运行上述命令时自动检测获取,无须修改(注:在一台虚拟机中,网卡为 enp0s3,但配置文件中依然为 eth0)
edgecore 注册为service
cp kubeedge/build/tools/edgecore.service /etc/systemd/system
systemctl enable edgecore
systemctl start edgecore
边缘安装完成
查看节点状态
root@k8sMaster:/var/log# kubectl get node
NAME STATUS ROLES AGE VERSION
edge-node Ready agent,edge 39m v1.19.3-kubeedge-v1.6.0-beta.0
k8smaster Ready master 3h45m v1.18.0
清除kubeedge
kubeedge运行文件:
1、/etc/kubeedge/: 证书、配置文件(云边均有)。
2、/var/lib/kubeedge/: 云端有socket文件kubeedge.sock ,边缘端有数据库文件edgecore.db。
如果要完全清理kubeedge环境,上述目录需要删除。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/162720.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...