#azure #kubernetes #ignite #azure-aks
Вопрос:
Я создал AKS и развернул на нем службу Apache Ignite. Когда я проверяю капсулы, я вижу, что они работают.
Кроме того, я могу получить IP-адрес балансировщика нагрузки.
Я следую официальным инструкциям Apache и пытаюсь подключить Ignite к ThinClient. Я делюсь своим кодом и кодом инструкций.
Вот мой код:
public void ConnectIgnite()
{
var cfg = new IgniteClientConfiguration
{
Endpoints = new[] { "20.101.12.***:10800" }
};
var client = Ignition.StartClient(cfg);
}
Но мой код становится ниже ошибок;
Система.Исключение AggregateException: «Не удалось установить соединение с тонким клиентом Ignite, для получения подробной информации изучите внутренние исключения».
Внутреннее исключение ExtendedSocketException: Попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, потому что подключенный хост не ответил.
а вот код инструкции Apache;
ClientConfiguration cfg = new ClientConfiguration().setAddresses("13.86.186.145:10800");
IgniteClient client = Ignition.startClient(cfg);
ClientCache<Integer, String> cache = client.getOrCreateCache("test_cache");
cache.put(1, "first test value");
System.out.println(cache.get(1));
client.close();
Кроме того, вот ссылка на официальную инструкцию
Я не понял, в чем дело? Кроме того, в инструкции говорится, что мне не нужны clientid и clientsecret, но я не хочу подключаться без какой-либо защиты, но это совершенно другая проблема.
Ответ №1:
Я нашел, что не так. Официальная страница Apache гласит: используйте приведенный ниже XML для настройки.
<bean class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="discoverySpi">
<bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="ipFinder">
<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.kubernetes.TcpDiscoveryKubernetesIpFinder">
<constructor-arg>
<bean class="org.apache.ignite.kubernetes.configuration.KubernetesConnectionConfiguration">
<property name="namespace" value="default" />
<property name="serviceName" value="ignite" />
</bean>
</constructor-arg>
</bean>
</property>
</bean>
</property>
</bean>
но,
во-первых, для этого XML необходим тег beans в верхней части XML. Кроме того, значение пространства имен и значение имени службы несовместимы с официальной страницей инструкций apache. Если вы перейдете на страницу apache для настройки;
вы должны использовать следующие значения
<property name="namespace" value="ignite" />
<property name="serviceName" value="ignite-service" />
вместо
<property name="namespace" value="default" />
<property name="serviceName" value="ignite" />
в конце изменений ваш XML будет выглядеть следующим образом
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="discoverySpi">
<bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="ipFinder">
<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.kubernetes.TcpDiscoveryKubernetesIpFinder">
<constructor-arg>
<bean class="org.apache.ignite.kubernetes.configuration.KubernetesConnectionConfiguration">
<property name="namespace" value="ignite" />
<property name="serviceName" value="ignite-service" />
</bean>
</constructor-arg>
</bean>
</property>
</bean>
</property>
</bean>
</beans>
Я изменил XML-файл конфигурации и перезапустил модули с помощью команды ниже, и это сработало.
kubectl -n service rollout restart deployment ignite-cluster
Ответ №2:
Попробуйте подключиться, используя 20.101.12.***
адрес извне. Кстати, что такое 13.86.186.145
, почему вы пытаетесь подключиться к нему?
Обновление: Похоже, вы просто скопировали его из документов, вам нужно заменить его своими собственными значениями.
Комментарии:
1. Кроме того, если вы просто тестируете что-то с помощью Ignite, вы можете использовать оператор GridGain, который, по моему опыту, значительно упрощает установку gridgain.com/docs/latest/installation-guide/operator/…
2. Я не подключаюсь к 13.86.186.145. Этот код является примером кода apache. Моя — наверху. Мой IP начинается с 20
3. Привет, Александр, я ответил на вопрос. Не могли бы вы проверить это и, если это правильно, пожалуйста, проголосуйте за это.
4. Привет, да, должно быть что-то простое, я думаю, вы правы.
5. Кстати, я подумал, что автор мог бы пометить его как правильный с помощью зеленой кнопки.