ACK EDGE 实战

介绍

阿里云边缘托管Kubernetes集群支持对边缘计算场景的容器应用和资源全生命周期管理

参考文档:

ack edge架构

G-11

  • 创建集群时,您需要选择购买至少1台云端ECS节点,用于部署边缘运维通道组件edge-tunnel-server

  • 为创建安全加密的公网运维通道,系统会为edge-tunnel-server组件创建的服务对象购买一个SLB,边缘节点上的edge-tunnel-agent将通过该SLB与edge-tunnel-server建立安全加密的运维通道。

  • 当云端组件(例如:kube-apiserver、metrics-server)访问边缘节点10250和10255端口时,边缘集群默认会将访问请求自动导流到edge-tunnel-server组件,云端组件无需做任何修改。

ack edge 基于开源项目openyurt,有兴趣可以阅读

使用

1. 创建ACK EDGE集群

阿里云不支持在当前集群中添加EDGE功能,需要另外创建集群,创建方法参考边缘托管版集群

注意项:

  1. 需要RAM权限

  2. 需要开通ESS权限

  3. 需要开通ENS服务

  4. 尽量添加多个region的vswitch(后期不可变更cluster vswitch)

  5. 创建时云端ECS 会被打上污点node-role.alibabacloud.com/addon

  6. 默认集群节点数量40,增加需要提工单申请

2. 添加边缘节点

添加边缘节点方法

注意项:

  1. 添加边缘节点前提前规划好主机名或在生成的添加脚本中加入参数nodeNameOverride
  2. 加入边缘节点收费标准: 6¥/核 月
  3. 跨节点池之间无法实现服务间通讯
  4. 同一机房(三层网络互通)建议接入同一边缘节点池,同一边缘节点池不建议跨机房
  5. 手动给边缘节点池节点打上特征标签,方便后续部署应用调度
  6. 添加边缘节点后设置节点自治

3. 移除边缘节点

  • 可以使用kubectl delete node 或通过控制台移除子节点
  • 需要使用接入工具Edgeadm的Reset子命令重置节点之后才能接入其它集群

4. kubectl 管理集群

  1. 可以使用kubectl 命令管理不同集群的应用(logs, exec, cp, top .....)
  2. 使用常规deployment需要注意设置好对应边缘节点的nodeSelector
  3. ACK@Edge提供单元化部署(UnitedDeployment) 对多边缘节点池节点实现统一管理

unitedDeployment 使用

cat << EOF | kubectl apply -f -
apiVersion: apps.openyurt.io/v1alpha1
kind: UnitedDeployment
metadata:
  name: example 
  namespace: default
spec:
  revisionHistoryLimit: 5
  selector:
    matchLabels:
      app: example 
  workloadTemplate:
    deploymentTemplate:
      metadata:
        creationTimestamp: null
        labels:
          app: example 
      spec:
        selector:
          matchLabels:
            app: example 
        template:
          metadata:
            creationTimestamp: null
            labels:
              app: example 
          spec:
            containers:
            - image: nginx:1.19.3
              imagePullPolicy: Always
              name: nginx
            dnsPolicy: ClusterFirst
            restartPolicy: Always
  topology:
    pools:
    - name: cloud
      nodeSelectorTerm:
        matchExpressions:
        - key: apps.openyurt.io/nodepool
          operator: In
          values:
          - np00d5e418870d49698a4e3612004266fb
      replicas: 2
    - name: edge
      nodeSelectorTerm:
        matchExpressions:
        - key: apps.openyurt.io/nodepool
          operator: In
          values:
          - np470838348300460b8d40e1aed99b3730
      replicas: 2
      tolerations:
      - effect: NoSchedule
        key: node-role.alibabacloud.com/addon
        operator: Exists
EOF
原文地址:https://www.cnblogs.com/drfung/p/15067216.html