соответствие xsl:template не находит соответствия

AFAIK, вы не можете отключить проверки работоспособности, но можете заставить их работать с FTP-серверами.

Настройте свою конфигурацию следующим образом:

[...]
spec:
  loadBalancerIP: 168.63.x.x
  type: LoadBalancer
  healthCheckNodePort: 30021
  externalTrafficPolicy: Local
  ports: [...]

Итак, вам нужно установить healthCheckNodePort для порта в диапазоне допустимых узлов nodePort и установить externalTrafficPolicy в Local.

Это заставит сервис открывать nodePort, и теперь LoadBalancer будет проверять только этот порт для определения доступности. Недостатком является то, что ваша проверка работоспособности теперь только проверяет, работает ли узел, а не работает ли служба ftp.

Чтобы это работало, вы ДОЛЖНЫ установить для externalTrafficPolicy значение Local. Это означает, что контейнер будет видеть фактический ip источника клиента как источник трафика, а не внутренний источник kubernetes. Измените любые настройки вашего сервиса соответственно. Однако для FTP это желательно, поскольку он позволяет серверу проверять, что попытка пассивного подключения к данным выполняется тем же клиентом, что и исходное управляющее подключение.

См. https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/ , раздел «Сохранение исходного IP-адреса клиента»

10
задан dmo 7 November 2008 в 18:58
поделиться

3 ответа

Да, это - проблема с пространством имен. Все элементы в Вашем входном документе находятся в пространстве имен http://schemas.microsoft.com/winfx/2006/xaml/presentation. Ваш шаблон пытается соответствовать элементам, которые находятся в пространстве имен по умолчанию, и это не находит никого.

Необходимо объявить это пространство имен в преобразовании, присвоить ему префикс и затем использовать тот префикс в любых шаблонах, которые предназначаются для соответствия элементам в том пространстве имен. Таким образом, Ваш XSLT должен выглядеть примерно так:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
    xmlns:p="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    exclude-result-prefixes="msxsl"/>

<xsl:output method="html" indent="yes"/>

<xsl:template match="/">
  <html>
    <body>
      <xsl:apply-templates />
    </body>
  </html>
</xsl:template>

<xsl:template match="p:FlowDocument">
  <xsl:apply-templates />
</xsl:template>

<xsl:template match="p:Paragraph" >
  <p>
    <xsl:apply-templates />
  </p>
</xsl:template>
20
ответ дан 3 December 2019 в 19:36
поделиться

Это работает, когда я удаляю это из Вашего исходного документа:

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

Я не полагаю, что Ваши последние два шаблона соответствуют вообще. (Можно протестировать путем помещения чего-то как переносящийся <отделение> в шаблоне FlowDocument.)

0
ответ дан 3 December 2019 в 19:36
поделиться

Просто попробуйте изменить тег

"xsl: template match = '/'"

в вашем xsl-файле на

"xsl: template match = '*'"

Это должно дать вам желаемый результат.

0
ответ дан 3 December 2019 в 19:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: