Исключение в Ингнито-Кубернетской интеграции - PullRequest
0 голосов
/ 11 декабря 2018

Я новичок в Ignite и Kubernetes.

Попытка интегрировать приложение сетки данных Ignite версии 2.6.0 в AKS.Клиентский jar-файл находится в ВМ, где выставлен kubectl.Используя kubectl, выполнил все файлы .yaml в клиентской виртуальной машине jar в соответствии с приведенным ниже URL-адресом

https://apacheignite.readme.io/docs/stateful-deployment

Возможность подключения к основному URL-адресу telnet кластера Kubernetes из виртуальной машины, гдеКлиентский jar присутствует.

ignite-stateful-set.yaml настроен с использованием файла «example-kube-persistence.xml», как указано ниже.- name: selfLink значение: file: ///opt/example-kube-persistence.xml

Клиент Ignite читает конфигурацию как ... try (Ignite ignite = Ignition.start ("/ opt / apache-ignite-fabric-2.6.0-bin / examples / config / example-ignite.xml "))

example-ignite.xml конфигурация ...

<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.kubernetes.TcpDiscoveryKubernetesIpFinder">
                <property name="namespace" value="ignite"/>
                <property name="serviceName" value="ignite"/>

                                   <property name="masterUrl" value="https://xxxxxxxxx.azmk8s.io:443"/>
                                   <property name="AccountToken" value="/data/ignite"/>

                </bean>

Запустил клиент и получил следующее исключение ...

 class org.apache.ignite.spi.IgniteSpiException: Failed to retrieve Ignite pods IP addresses.
    at org.apache.ignite.spi.discovery.tcp.ipfinder.kubernetes.TcpDiscoveryKubernetesIpFinder.getRegisteredAddresses(TcpDiscoveryKubernetesIpFinder.java:172)
    at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.registeredAddresses(TcpDiscoverySpi.java:1828)
    at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.resolvedAddresses(TcpDiscoverySpi.java:1776)
    at org.apache.ignite.spi.discovery.tcp.ServerImpl.sendJoinRequestMessage(ServerImpl.java:1029)
    at org.apache.ignite.spi.discovery.tcp.ServerImpl.joinTopology(ServerImpl.java:890)
    at org.apache.ignite.spi.discovery.tcp.ServerImpl.spiStart(ServerImpl.java:373)
    at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.spiStart(TcpDiscoverySpi.java:1948)
    at org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:297)
    at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:915)
    at org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1721)
    at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1028)
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:2014)
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1723)
    at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1151)
    at org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:1069)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:955)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:854)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:724)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:693)
    at org.apache.ignite.Ignition.start(Ignition.java:352)
    at com.ecoenergy.cortix.ignite.IgniteFutureAsync.main(IgniteFutureAsync.java:54)
Caused by: class org.apache.ignite.spi.IgniteSpiException: Failed to load services account token [setAccountToken= /var/run/secrets/kubernetes.io/serviceaccount/token]
    at org.apache.ignite.spi.discovery.tcp.ipfinder.kubernetes.TcpDiscoveryKubernetesIpFinder.serviceAccountToken(TcpDiscoveryKubernetesIpFinder.java:287)
    at org.apache.ignite.spi.discovery.tcp.ipfinder.kubernetes.TcpDiscoveryKubernetesIpFinder.getRegisteredAddresses(TcpDiscoveryKubernetesIpFinder.java:148)
    ... 20 more
Caused by: java.nio.file.NoSuchFileException: /var/run/secrets/kubernetes.io/serviceaccount/token
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
    at java.nio.file.Files.newByteChannel(Files.java:361)
    at java.nio.file.Files.newByteChannel(Files.java:407)
    at java.nio.file.Files.readAllBytes(Files.java:3152)
    at org.apache.ignite.spi.discovery.tcp.ipfinder.kubernetes.TcpDiscoveryKubernetesIpFinder.serviceAccountToken(TcpDiscoveryKubernetesIpFinder.java:285)
    ... 21 more

Пожалуйста, помогите мне, как избавиться от исключения.Заранее спасибо.

1 Ответ

0 голосов
/ 11 декабря 2018

Он ищет маркер учетной записи службы в /var/run/secrets/kubernetes.io/serviceaccount/token, но этот файл не существует.Вопрос в том, почему?

Некоторые команды:

kubectl get serviceaccounts

Вы должны найти такую, которая называется "зажигать".Если нет, то это ваша проблема.

kubectl get serviceaccounts/ignite -o yaml

Если есть свойство с именем automountServiceAccountToken, установленное на false, это ваша проблема.

Внизу в нем должны быть перечислены секреты.Если нет, то это ваша проблема.

kubectl get secrets/default-token-wnfp5 -o yaml

(Очевидно, замените его своим секретным именем.)

Вы должны найти токен в выходных данных.

kubectl get pods
kubectl get pods/ignite-0 -o yaml

ВыИщите местное название секрета.А потом, позже в файле, где он монтируется.Если он не установлен, это ваша проблема.Если он указывает куда-то странно, это ваша проблема.

Также взгляните на:

kubectl get clusterrolebinding/ignite

Роли и субъекты должны указывать на разумные значения.

Kubernetesимеет так много уровней косвенности, что легко пропустить ссылку где-нибудь.Если вы случайно не пропустили шаг (или есть некоторые причуды Azure), вы также можете посмотреть документацию учетной записи службы .

...