第 7 章 已知问题

本节列出了 OpenShift 中 AMQ Streams 2.2 的已知问题。

7.1. IPv6 集群上的 AMQ Streams Cluster Operator

AMQ Streams Cluster Operator 在 Internet Protocol 版本 6(IPv6)集群中不会启动。

临时解决方案

这个问题有两个临时解决方案。

临时解决方案:设置 KUBERNETES_MASTER 环境变量

  1. 显示 OpenShift Container Platform 集群的 Kubernetes master 节点地址:

    oc cluster-info
    Kubernetes master is running at <master_address>
    # ...

    复制 master 节点的地址。

  2. 列出所有 Operator 订阅:

    oc get subs -n <operator_namespace>
  3. 编辑 AMQ Streams 的 订阅资源

    oc edit sub amq-streams -n <operator_namespace>
  4. spec.config.env 中,添加 KUBERNETES_MASTER 环境变量,设置为 Kubernetes master 节点的地址。例如:

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: amq-streams
      namespace: <operator_namespace>
    spec:
      channel: amq-streams-1.8.x
      installPlanApproval: Automatic
      name: amq-streams
      source: mirror-amq-streams
      sourceNamespace: openshift-marketplace
      config:
        env:
        - name: KUBERNETES_MASTER
          value: MASTER-ADDRESS
  5. 保存并退出编辑器。
  6. 检查 订阅 是否已更新:

    oc get sub amq-streams -n <operator_namespace>
  7. 检查 Cluster Operator Deployment 是否已更新为使用新的环境变量:

    oc get deployment <cluster_operator_deployment_name>

临时解决方案二:禁用主机名验证

  1. 列出所有 Operator 订阅:

    oc get subs -n <operator_namespace>
  2. 编辑 AMQ Streams 的 订阅资源

    oc edit sub amq-streams -n <operator_namespace>
  3. spec.config.env 中,添加 KUBERNETES_DISABLE_HOSTNAME_VERIFICATION 环境变量,设为 true。例如:

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: amq-streams
      namespace: <operator_namespace>
    spec:
      channel: amq-streams-1.8.x
      installPlanApproval: Automatic
      name: amq-streams
      source: mirror-amq-streams
      sourceNamespace: openshift-marketplace
      config:
        env:
        - name: KUBERNETES_DISABLE_HOSTNAME_VERIFICATION
          value: "true"
  4. 保存并退出编辑器。
  5. 检查 订阅 是否已更新:

    oc get sub amq-streams -n <operator_namespace>
  6. 检查 Cluster Operator Deployment 是否已更新为使用新的环境变量:

    oc get deployment <cluster_operator_deployment_name>