前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >KubeEdge | [进阶] KubeEdge高可用环境搭建

KubeEdge | [进阶] KubeEdge高可用环境搭建

作者头像
Zkeq
发布2023-06-10 10:26:15
6640
发布2023-06-10 10:26:15
举报
文章被收录于专栏:Zkeq

高可用方案梳理

Kubernetes高可用

image-20230603011212321
image-20230603011212321
image-20230603011230210
image-20230603011230210

修改 kubernetes-init.yaml 两个地方

  • 修改 ETCD 的地址 改成集群地址
  • 修改 控制节点 的地址 改成 LoadBalancer 地址
  • join 命令使用新增控制面节点的命令来新增多主节点

KubeEdge高可用

image-20230603011554045
image-20230603011554045
image-20230603011603109
image-20230603011603109
image-20230603012314915
image-20230603012314915

云端 cloudcore 容器化

代码语言:javascript
复制
# 测试环境中使用的 KubeEdge 版本为 1.13.0 版本较新 默认即为容器启动 故此步省略
[root@master ~]# docker ps -a | grep kubeedge
efcb55359d5f   kubeedge/cloudcore                                    "cloudcore"              2 days ago   Up 2 days                         k8s_cloudcore_cloudcore-786689f8cb-7kk8v_kubeedge_d940365f-950d-4a5b-8810-3632ce2f13b4_0
6802fcb66b18   registry.aliyuncs.com/google_containers/pause:3.4.1   "/pause"                 2 days ago   Up 2 days                         k8s_POD_cloudcore-786689f8cb-7kk8v_kubeedge_d940365f-950d-4a5b-8810-3632ce2f13b4_0
[root@master ~]# netstat -nplt  | grep cloudcore
tcp6       0      0 :::10000                :::*                    LISTEN      10783/cloudcore     
tcp6       0      0 :::10002                :::*                    LISTEN      10783/cloudcore     
tcp6       0      0 :::10003                :::*                    LISTEN      10783/cloudcore     
tcp6       0      0 :::10004                :::*                    LISTEN      10783/cloudcore  

# Edge 节点通过自定义配置项纳管到云端
$ /opt/ke_install
$ tar -zxvf kubeedge-v1.13.0-linux-amd64
$ cp kubeedge-v1.13.0-linux-amd64/edge/edgecore /usr/local/bin/

- https://kubeedge.io/zh/docs/setup/config_zh/

$ edgecore --defaultconfig > /etc/kubeedge/config/edgecore.yaml

apiVersion: edgecore.config.kubeedge.io/v1alpha2
kind: EdgeCore
modules:
  edgeHub:
    httpServer: https://172.129.78.153:10002
    token: "72de9c27eef0a841f91e68257f0156ec57d42bd46623fc90dc036c00842c59d5.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2ODU4MDQyNDR9.rSQ5ntF6_LrgEr4I6WTxD0yrZWgRYV45wBM6pzYiam4"
    websocket:
      server: 172.129.78.153:10000
      
# 修改这三个地方.

[root@master ~]# kubectl get secret -n kubeedge
NAME                              TYPE                                  DATA   AGE
casecret                          Opaque                                2      2d4h
cloudcore                         Opaque                                3      2d4h
cloudcore-token-6rnlp             kubernetes.io/service-account-token   3      2d4h
cloudcoresecret                   Opaque                                2      2d4h
default-token-74jtf               kubernetes.io/service-account-token   3      2d4h
sh.helm.release.v1.cloudcore.v1   helm.sh/release.v1                    1      2d4h
sh.helm.release.v1.cloudcore.v2   helm.sh/release.v1                    1      2d4h
tokensecret                       Opaque                                1      2d4h

[root@master ~]# kubectl get secret tokensecret -n kubeedge -oyaml
apiVersion: v1
data:
  tokendata: NzJkZTljMjdlZWYwYTg0MWY5MWU2ODI1N2YwMTU2ZWM1N2Q0MmJkNDY2MjNmYzkwZGMwMzZjMDA4NDJjNTlkNS5leUpoYkdjaU9pSklVekkxTmlJc0luUjVjQ0k2SWtwWFZDSjkuZXlKbGVIQWlPakUyT0RVNE1EUXlORFI5LnJTUTVudEY2X0xyZ0VyNEk2V1R4RDB5clpXZ1JZVjQ1d0JNNnB6WWlhbTQ=
kind: Secret
metadata:
  creationTimestamp: "2023-05-31T13:47:39Z"
  name: tokensecret
  namespace: kubeedge
  resourceVersion: "315983"
  uid: b1edfa89-c4b2-4937-a919-7b04feba28cd
type: Opaque

[root@master ~]# echo NzJkZTljMjdlZWYwYTg0MWY5MWU2ODI1N2YwMTU2ZWM1N2Q0MmJkNDY2MjNmYzkwZGMwMzZjMDA4NDJjNTlkNS5leUpoYkdjaU9pSklVekkxTmlJc0luUjVjQ0k2SWtwWFZDSjkuZXlKbGVIQWlPakUyT0RVNE1EUXlORFI5LnJTUTVudEY2X0xyZ0VyNEk2V1R4RDB5clpXZ1JZVjQ1d0JNNnB6WWlhbTQ= | base64 -d

72de9c27eef0a841f91e68257f0156ec57d42bd46623fc90dc036c00842c59d5.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2ODU4MDQyNDR9.rSQ5ntF6_LrgEr4I6WTxD0yrZWgRYV45wBM6pzYiam4

# 修改名字
  edged:
    hostnameOverride: edgeMyCompute
# 通道
  edgeStream:
    enable: true
    
$ cp /opt/ke_install/kubeedge-1.13.0/build/toolsedgecore.service /etc/systemd/system/

$ systemctl enable --now edgecore
Created symlink from /etc/systemd/system/multi-user.target.wants/edgecore.service to /etc/systemd/system/edgecore.service

keepalived原理

  • 通过 keepalived得到一个虚拟 IP
image-20230604234832994
image-20230604234832994
image-20230604234845923
image-20230604234845923

nodePort高可用实战

  • 运行多个 pod 然后定义 service 转发端口至 NodePort --> 达到高可用

相关案例见视频

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 高可用方案梳理
    • Kubernetes高可用
      • KubeEdge高可用
      • keepalived原理
      • nodePort高可用实战
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档