[toc]
Облако-кластер (cloud cluster): стандартный k8s кластер, расположенный в облачной части, предоставляющий вычислительные возможности в облаке.
Крайний кластер (edge cluster): стандартный k8s кластер, расположенный на стороне края, предоставляющий вычислительные возможности на краю.
Узел-соединение (connector node): uks узел, расположенный в облачной части, отвечающий за коммуникацию между облачной и краевой частями. Поскольку узел соединения будет иметь значительную нагрузку, лучше не запускать другие программы на нём.
Крайний узел (edge node): uks узел, расположенный на стороне края, присоединяющийся к облако-кластеру с помощью фреймворка, такого как KubeEdge.
Хост-кластер (host cluster): выборочный облако-кластер, используемый для управления межкластерной коммуникацией. Первый установленный кластер FabEdge должен быть хост-кластером.
Член-кластер (member cluster): крайний кластер, зарегистрированный в хост-кластере, который сообщает информацию о сети хост-кластеру.
Сообщество (community): K8S CRD, определённый FabEdge, существует два типа:
Примечание 1: Для Flannel поддерживаются только режимы Vxlan. Поддерживает среду с двойным стеком.
Примечание 2: Для Calico поддерживаются только режимы IPIP. Поддерживает только среду IPv4.
Убедитесь, что следующие порты разрешены сетевым экраном или группой безопасности.
Отключите firewalld, если он установлен на вашем компьютере.
Соберите конфигурацию текущего кластера
$ curl -s https://fabedge.github.io/helm-chart/scripts/get_cluster_info.sh | bash -
Это может занять некоторое время. Пожалуйста, подождите.
clusterDNS : 169.254.25.10
clusterDomain : cluster.local
cluster-cidr : 10.233.64.0/18
service-cluster-ip-range : 10.233.0.0/18
Используйте Helm для добавления репозитория FabEdge:
helm repo add fabedge https://fabedge.github.io/helm-chart
```1. Разверните FabEdge```shell
$ curl https://fabedge.github.io/helm-chart/scripts/quickstart.sh | bash -s --
--cluster-name beijing
--cluster-role host
--cluster-zone beijing
--cluster-region china
--connectors node1
--edges edge1,edge2
--edge-pod-cidr 10.233.0.0/16
--connector-public-addresses 10.22.46.47
--chart fabedge/fabedge
> Примечание:
> **--connectors**: Названия узлов Kubernetes, в которых находятся коннекторы, эти узлы будут помечены как node-role.kubernetes.io/connector
> **--edges**: Названия узлов края, эти узлы будут помечены как node-role.kubernetes.io/edge
> **--edge-pod-cidr**: Диапазон IPv4 адресов для пакетов края, требуется при использовании Calico. Убедитесь, что значение не пересекается с CIDR кластера вашего кластера.
> **--connector-public-addresses**: IP-адреса узлов Kubernetes, где расположены коннекторы.
> *PS: Скрипт `quickstart.sh` имеет больше параметров; приведенный выше пример использует только необходимые параметры, выполните `quickstart.sh --help`, чтобы проверить все доступные параметры.*2. Проверьте развертывание
```shell
$ kubectl get no
NAME STATUS ROLES AGE VERSION
edge1 Ready edge 5h22m v1.22.6-kubeedge-v1.12.2
edge2 Ready edge 5h21m v1.22.6-kubeedge-v1.12.2
master Ready master 5h29m v1.22.5
node1 Ready connector 5h23m v1.22.5
$ kubectl get po -n kube-system
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-8b5ff5d58-lqg66 1/1 Running 0 17h
calico-node-7dkwj 1/1 Running 0 16h
calico-node-q95qp 1/1 Running 0 16h
coredns-86978d8c6f-qwv49 1/1 Running 0 17h
kube-apiserver-master 1/1 Running 0 17h
kube-controller-manager-master 1/1 Running 0 17h
kube-proxy-ls9d7 1/1 Running 0 17h
kube-proxy-wj8j9 1/1 Running 0 17h
kube-scheduler-master 1/1 Running 0 17h
metrics-server-894c64767-f4bvr 2/2 Running 0 17h
nginx-proxy-node1 1/1 Running 0 17h
$ kubectl get po -n fabedge
NAME READY STATUS RESTARTS AGE
fabdns-7dd5ccf489-5dc29 1/1 Running 0 24h
fabedge-agent-bvnvj 2/2 Running 2 23h
fabedge-agent-c9bsx 2/2 Running 2 23h
fabedge-cloud-agent-lgqkw 1/1 Running 3 24h
fabedge-connector-54c78b5444-9dkt6 2/2 Running 0 24h
fabedge-operator-767bc6c58b-rk7mr 1/1 Running 0 24h
service-hub-7fd4659b89-h522c 1/1 Running 0 24h
$ cat > all-edges.yaml << EOF
apiVersion: fabedge.io/v1alpha1
kind: Community
metadata:
name: beijing-edge-nodes # имя сообщества
spec:
members:
- beijing.edge1 # формат: {имя кластера}.{имя узла}
- beijing.edge2
EOF
```$ kubectl apply -f all-edges.yaml
```4. Обновите конфигурацию, зависящую от [инфраструктуры边缘计算框架](#конфигурация-зависящая-от-инфраструктуры-граничного-расчета), связанной с ней
5. Обновите конфигурацию, зависящую от [CNI](#конфигурация-зависящая-от-CNI)
## Развертывание FabEdge в членском кластере
Если у вас есть какой-либо членский кластер, зарегистрируйте его в хостовом кластере первым делом, а затем разверните FabEdge в нем. Перед этим лучше убедиться, что адреса сети хоста и контейнерной сети этих кластеров не пересекаются.
1. В **хостовом кластере**, создайте кластер с именем "shanghai". Получите токен для регистрации.
```shell
# Выполнить в хостовом кластере
$ cat > shanghai.yaml << EOF
apiVersion: fabedge.io/v1alpha1
kind: Cluster
metadata:
name: shanghai # имя кластера
EOF
$ kubectl apply -f shanghai.yaml
$ kubectl get cluster shanghai -o go-template --template='{{.spec.token}}' | awk 'END{print}'
eyJ------omitted-----9u0
```
3. Используйте Helm для добавления репозитория fabedge:
```shell
helm repo add fabedge https://fabedge.github.io/helm-chart
```
3. Разверните FabEdge в членском кластере```shell
curl https://fabedge.github.io/helm-chart/scripts/quickstart.sh | bash -s -- \
--cluster-name shanghai \
--cluster-role member \
--cluster-zone shanghai \
--cluster-region china \
--connectors node1 \
--edges edge1,edge2 \
--edge-pod-cidr 10.233.0.0/16 \
--connector-public-addresses 10.22.46.26 \
--chart fabedge/fabedge \
--service-hub-api-server https://10.22.46.47:30304 \
--operator-api-server https://10.22.46.47:30303 \
--init-token ey...Jh
Примечание:
--connectors: Имена узлов Kubernetes, где расположены соединители; эти узлы будут помечены какnode-role.kubernetes.io/connector
.
--edges: Имена узлов границы; эти узлы будут помечены какnode-role.kubernetes.io/edge
.
--edge-pod-cidr: Диапазон IPv4-адресов для пакета границы; если используется Calico, этот параметр обязателен. Убедитесь, что значение не пересекается с CIDR-диапазоном вашего кластера.
--connector-public-addresses: IP-адреса узлов Kubernetes, где расположены соединители в членском кластере.
--init-token: Токен при добавлении членского кластера в хостовый кластер.
--service-hub-api-server: Конечная точка сервис-хаба в хостовом кластере.
--operator-api-server: Конечная точка оператора API в хостовом кластере.4. Проверьте развертывание```shell $ kubectl get no NAME STATUS РОЛИ ВРЕМЯ ВЕРСИЯ edge1 Ready edge 5h22m v1.22.6-kubeedge-v1.12.2 edge2 Ready edge 5h21m v1.22.6-kubeedge-v1.12.2 master Ready master 5h29m v1.22.5 node1 Ready connector 5h23m v1.22.5
$ kubectl get po -n kube-system NAME READY STATUS RESTARTS ВРЕМЯ calico-kube-controllers-8b5ff5d58-lqg66 1/1 Running 0 17h calico-node-7dkwj 1/1 Running 0 16h calico-node-q95qp 1/1 Running 0 16h coredns-86978d8c6f-qwv49 1/1 Running 0 17h kube-apiserver-master 1/1 Running 0 17h kube-controller-manager-master 1/1 Running 0 17h kube-proxy-ls9d7 1/1 Running 0 17h kube-proxy-wj8j9 1/1 Running 0 17h kube-scheduler-master 1/1 Running 0 17h metrics-server-894c64767-f4bvr 2/2 Running 0 17h nginx-proxy-node1 1/1 Running 0 17h
$ kubectl get po -n fabedge NAME READY STATUS RESTARTS ВРЕМЯ fabdns-7b768d44b7-bg5h5 1/1 Running 0 9m19s fabedge-agent-m55h5 2/2 Running 0 8m18s fabedge-cloud-agent-hxjtb 1/1 Running 4 9m19s fabedge-connector-8c949c5bc-7225c 2/2 Running 0 8m18s fabedge-operator-dddd999f8-2p6zn 1/1 Running 0 9m19s service-hub-74d5fcc9c9-f5t8f 1/1 Running 0 9m19s
## Включение многоузловой связи
1. В **хостовом кластере**, создайте сообщество для всех кластеров, которые должны взаимодействовать друг с другом
```shell
$ cat > community.yaml << EOF
apiVersion: fabedge.io/v1alpha1
kind: Community
metadata:
name: all-clusters
spec:
members:
- shanghai.connector # формат: имя_кластера.connector
- beijing.connector # формат: имя_кластера.connector
EOF
$ kubectl apply -f community.yaml
```## Включение многоузлового открытия служб
Измените конфигурационный маппинг coredns:
```shell
$ kubectl -n kube-system edit cm coredns
# добавьте эту конфигурацию
global {
forward . 10.109.72.43 # cluster-ip сервиса fab-dns
}
.:53 {
...
}
Включите dynamicController в cloudcore:
dynamicController:
enable: true
Эта конфигурационная единица находится в файле конфигурации cloudcore cloudcore.yaml, пожалуйста, найдите этот файл самостоятельно в зависимости от вашей среды.
Убедитесь, что cloudcore имеет права доступа к ресурсам endpointslices (только если cloudcore запущен в кластере):
kubectl edit clusterrole cloudcore
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app.kubernetes.io/managed-by: Helm
k8s-app: kubeedge
kubeedge: cloudcore
name: cloudcore
rules:
- apiGroups:
- discovery.k8s.io
resources:
- endpointslices
verbs:
- get
- list
- watch
Перезапустите cloudcore.
Обновите edgecore
на всех граничных узлах (kubeedge < v.1.12.0)
$ vi /etc/kubeedge/config/edgecore.yaml
edged:
enable: true
...
networkPluginName: cni
networkPluginMTU: 1500
clusterDNS: 169.254.25.10
clusterDomain: "cluster.local" # clusterDomain из вывода команды get_cluster_info
metaManager:
metaServer:
enable: true
или (kubeedge >= v.1.12.2) yaml $ vi /etc/kubeedge/config/edgecore.yaml edged: enable: true ... network_plugin_name: cni network_plugin_mtu: 1500 tailored_kubelet_config: cluster_dns: ["169.254.25.10"] cluster_domain: "cluster.local" # clusterDomain из вывода команды get_cluster_info meta_manager: meta_server: enable: true
3. Перезапустите edgecore
на всех граничных узлах
$ systemctl restart edgecore
С версии v0.7.0, fabedge может управлять пулингами адресов Calico с CIDRs из других кластеров. Эта функция активируется при использовании скрипта quickstart.sh
для установки fabedge. Если вы предпочитаете настроить пулинги адресов самостоятельно, предоставьте --auto-keep-ippools false
при установке fabedge. Если вы выбрали, чтобы fabedge настраивал пулинги адресов, следующий контент можно пропустить. Независимо от роли кластера, добавьте все сегменты сети Pods и Services всех других кластеров в кластер с Calico, что предотвращает Calico от выполнения перевода адреса источника.
Пример с кластерами: хост (Calico) + member1 (Calico) + member2 (Flannel)
На кластере хоста (Calico) добавьте адреса кластера member (Calico) и кластера member (Flannel)
На кластере member1 (Calico) добавьте адреса кластера хоста (Calico) и кластера member (Flannel)
На кластере member2 (Flannel) конфигурация не требуется.
$ cat > cluster-cidr-pool.yaml << EOF
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
name: cluster-beijing-cluster-cidr
spec:
blockSize: 26
cidr: 10.233.64.0/18
natOutgoing: false
disabled: true
ipipMode: Always
EOF
$ calicoctl.sh create -f cluster-cidr-pool.yaml
$ cat > service-cluster-ip-range-pool.yaml << EOF
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
name: cluster-beijing-service-cluster-ip-range
spec:
blockSize: 26
cidr: 10.233.0.0/18
natOutgoing: false
disabled: true
ipipMode: Always
EOF
$ calicoctl.sh create -f service-cluster-ip-range-pool.yaml
```> **cidr** должен быть одним из следующих значений:
- edge-pod-cidr текущего кластера
- параметр cluster-cidr другого кластера
- диапазон service-cluster-ip-range другого кластера
Этот документ представляет, как установить FabEdge через скрипт, который поможет вам быстро попробовать FabEdge, но мы рекомендуем вам прочитать Ручная установка, которая может лучше подходить для среды производства.
FabEdge также предоставляет другие возможности, прочтите Часто задаваемые вопросы, чтобы узнать больше.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )