Ubuntu16.04 环境 Kubeedge安装「建议收藏」

Ubuntu16.04 环境 Kubeedge安装「建议收藏」前期准备换源#备份sudocp/etc/apt/sources.list/etc/apt/sources.list.bak#更新sources.listsudotee/etc/apt/sources.list<<-‘EOF’debhttp://mirrors.aliyun.com/ubuntu/xenialmaindeb-srchttp://mirrors.aliyun.com/ubuntu/xenialmaindebhttp://mirr

大家好,又见面了,我是你们的朋友全栈君。

前期准备

换源

# 备份
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处地方。

  1. 修改edgehub下的token,为云端获取的token值
  2. 修改websocket下的server,默认为127.0.0.1:10000,需改为实际云端 IP 地址,此处为192.168.0.49:10000
  3. 修改(确认)podSandboxImage,X86平台为podSandboxImage: kubeedge/pause:3.1(默认),ARM 平台根据位数不同,可设为kubeedge/pause-arm:3.1ubeedge/pause-arm64:3.1
  4. 填写 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账号...

(0)


相关推荐

  • 热血传奇服务端源码(传奇类 手游源码)

    缘起因由在一个无所事事的周末下午,突然想起魔兽世界,官方的账号很久没有上了,里面的大小号现在连满级都不是。以前曾经搭过传奇和星际争霸战网的私服自娱自乐,也听说过魔兽世界有开源的服务端模拟,既然兴致来了就小小的研究一下。目前魔兽世界的私服比较流行的是MaNGOS和Trinity,二者都是模拟魔兽世界服务端。MaNGOS“号称”是一个研究型项目,目的是为了学习大规模的C++项目开发,有

  • 微服务架构-实现技术之六大基础组件:服务通信+事件驱动+负载均衡+服务路由+API网关+配置管理

    微服务架构-实现技术之六大基础组件:服务通信+事件驱动+负载均衡+服务路由+API网关+配置管理微服务架构的实现首先需要提供一些基础组件,这些基础的功能性组件主要包括服务之间的通信、面向事件驱动的架构设计方法、负载均衡、服务路由、API网关和分布式配置中心等,我们对这六大基本组件进行初步的分析定案。一、服务通信:网络连接+IO模型+可靠性+同步与异步对于微服务而言,网络通信主要关注于网络连接、IO模型、可靠性设计及服务调用方式。1.网络连接一般,基于TCP网络连接有两种基本方…

  • Python变量的命名_python函数命名规则

    Python变量的命名_python函数命名规则一、变量的概念变量名只有在第一次出现的时候,才是定义变量。当再次出现时,不是定义变量,而是直接使用之前定义的变量。1.变量命名1)命名的规范性变量名可以包括字母、数字、下划线,但是数字不能做为开头。例如:name1是合法变量名,而1name就不可以。 系统关键字不能做变量名使用 除了下划线之个,其它符号不能做为变量名使用 Python的变量名是除分大小写的2)驼峰命名法…

  • C# 多线程详细讲解「建议收藏」

    C# 多线程详细讲解「建议收藏」C#多线程一、基本概念1、进程首先打开任务管理器,查看当前运行的进程:从任务管理器里面可以看到当前所有正在运行的进程。那么究竟什么是进程呢?进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源。一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个线程。线程是操作系统分配处理器时间的基本单元,在进程中可以有多个线程同时执行代码。进程之间是相对独立的,一个进程无法访问另一个进程的数据(除非利用分布式计算方式),一个进程运

    2022年10月21日
  • 英语二十天 2010-10-14

    英语二十天 2010-10-14

  • 数据挖掘之异常检测

    数据挖掘之异常检测看了数据挖掘的异常检测部分,写一点笔记。1.0概述什么是数据挖掘:数据挖掘什么是异常检测:异常检测异常检测的目标是发现与大部分其他对象不同的对象。通常,异常对象被称为离群点,因为在数据的散布

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号