Strimzi Kafka 代理因为“ingress 不包含有效的 IngressClass”而未创建

问题描述 投票:0回答:0

我有一个由 Rancher Desktop 创建的本地 k3s Kubernetes 集群(禁用 Traefik)。

我正在尝试根据本教程使用 Ingress 方式设置 Kafka,以使其可供在 Kubernetes 外部运行的客户端访问。

我通过安装了ingress-nginx

helm upgrade \
  ingress-nginx \
  ingress-nginx \
  --install \
  --repo=https://kubernetes.github.io/ingress-nginx \
  --namespace=ingress-nginx \
  --create-namespace \
  --values=my-values.yaml

my-values.yaml

controller:
  extraArgs:
    enable-ssl-passthrough: true

我通过以下方式获得了我的集群 IP

192.168.1.149

➜ kubectl get node lima-rancher-desktop -o wide
NAME                   STATUS   ROLES                  AGE    VERSION        INTERNAL-IP    EXTERNAL-IP     OS-IMAGE             KERNEL-VERSION   CONTAINER-RUNTIME
lima-rancher-desktop   Ready    control-plane,master   108m   v1.26.3+k3s1   192.168.5.15   192.168.1.149   Alpine Linux v3.16   5.15.96-0-virt   containerd://1.6.8

然后我通过以下方式部署我的 Kafka:

kubectl create namespace hm-kafka
kubectl apply --filename="https://strimzi.io/install/latest?namespace=hm-kafka" --namespace=hm-kafka
kubectl apply --filename=my-kafka-persistent.yaml --namespace=hm-kafka

my-kafka-persistent.yaml(基于kafka-persistent.yaml):

---
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: hm-kafka
spec:
  kafka:
    version: 3.4.0
    replicas: 3
    listeners:
      - name: plain
        port: 9092
        type: internal
        tls: false
      - name: tls
        port: 9093
        type: internal
        tls: true
      - name: external
        port: 9094
        type: ingress
        tls: true
        configuration:
          bootstrap:
            host: kafka-bootstrap.192.168.1.149.nip.io
          brokers:
          - broker: 0
            host: kafka-broker-0.192.168.1.149.nip.io
          - broker: 1
            host: kafka-broker-1.192.168.1.149.nip.io
          - broker: 2
            host: kafka-broker-2.192.168.1.149.nip.io
    config:
      offsets.topic.replication.factor: 3
      transaction.state.log.replication.factor: 3
      transaction.state.log.min.isr: 2
      default.replication.factor: 3
      min.insync.replicas: 2
      inter.broker.protocol.version: "3.4"
    storage:
      type: jbod
      volumes:
        - id: 0
          type: persistent-claim
          size: 100Gi
          deleteClaim: false
  zookeeper:
    replicas: 3
    storage:
      type: persistent-claim
      size: 100Gi
      deleteClaim: false
  entityOperator:
    topicOperator: {}
    userOperator: {}

但是,这次没有创建Kafka broker。

当我检查ingress-nginx日志时,它显示:

➜ kubectl logs ingress-nginx-controller-6598bff54d-sffqt -n ingress-nginx

-------------------------------------------------------------------------------
NGINX Ingress controller
  Release:       v1.7.0
  Build:         72ff21ed9e26cb969052c753633049ba8a87ecf9
  Repository:    https://github.com/kubernetes/ingress-nginx
  nginx version: nginx/1.21.6

-------------------------------------------------------------------------------

W0415 05:07:19.264102       7 controller.go:279] ignoring ingress hm-kafka-kafka-bootstrap in hm-kafka based on annotation : ingress does not contain a valid IngressClass
I0415 05:07:19.264118       7 main.go:100] "successfully validated configuration, accepting" ingress="hm-kafka/hm-kafka-kafka-bootstrap"
W0415 05:07:19.264254       7 controller.go:279] ignoring ingress hm-kafka-kafka-0 in hm-kafka based on annotation : ingress does not contain a valid IngressClass
I0415 05:07:19.264262       7 main.go:100] "successfully validated configuration, accepting" ingress="hm-kafka/hm-kafka-kafka-0"
W0415 05:07:19.264344       7 controller.go:279] ignoring ingress hm-kafka-kafka-1 in hm-kafka based on annotation : ingress does not contain a valid IngressClass
W0415 05:07:19.264254       7 controller.go:279] ignoring ingress hm-kafka-kafka-2 in hm-kafka based on annotation : ingress does not contain a valid IngressClass
I0415 05:07:19.264351       7 main.go:100] "successfully validated configuration, accepting" ingress="hm-kafka/hm-kafka-kafka-1"
I0415 05:07:19.264354       7 main.go:100] "successfully validated configuration, accepting" ingress="hm-kafka/hm-kafka-kafka-2"
I0415 05:07:19.273788       7 store.go:429] "Ignoring ingress because of error while validating ingress class" ingress="hm-kafka/hm-kafka-kafka-1" error="ingress does not contain a valid IngressClass"
I0415 05:07:19.274943       7 store.go:429] "Ignoring ingress because of error while validating ingress class" ingress="hm-kafka/hm-kafka-kafka-2" error="ingress does not contain a valid IngressClass"
I0415 05:07:19.275020       7 store.go:429] "Ignoring ingress because of error while validating ingress class" ingress="hm-kafka/hm-kafka-kafka-0" error="ingress does not contain a valid IngressClass"
I0415 05:07:19.275129       7 store.go:429] "Ignoring ingress because of error while validating ingress class" ingress="hm-kafka/hm-kafka-kafka-bootstrap" error="ingress does not contain a valid IngressClass"

我尝试将 my-kafka-persistent.yaml 更新为

# ...
      - name: external
        port: 9094
        type: ingress
        tls: true
        configuration:
          bootstrap:
            host: kafka-bootstrap.192.168.1.149.nip.io
            annotations:
              kubernetes.io/ingress.class: nginx
          brokers:
          - broker: 0
            host: kafka-broker-0.192.168.1.149.nip.io
            annotations:
              kubernetes.io/ingress.class: nginx
          - broker: 1
            host: kafka-broker-1.192.168.1.149.nip.io
            annotations:
              kubernetes.io/ingress.class: nginx
          - broker: 2
            host: kafka-broker-2.192.168.1.149.nip.io
            annotations:
              kubernetes.io/ingress.class: nginx

当我再次部署时,它显示错误:

➜ kubectl apply --filename=kubernetes/manifests/hm-kafka/kafka-persistent.yaml --namespace=hm-kafka
The request is invalid: patch: Invalid value: "{\"apiVersion\":\"kafka.strimzi.io/v1beta2\",\"kind\":\"Kafka\",\"metadata\":{\"annotations\":{\"kubectl.kubernetes.io/last-applied-configuration\":\"{\\\"apiVersion\\\":\\\"kafka.strimzi.io/v1beta2\\\",\\\"kind\\\":\\\"Kafka\\\",\\\"metadata\\\":{\\\"annotations\\\":{},\\\"name\\\":\\\"hm-kafka\\\",\\\"namespace\\\":\\\"hm-kafka\\\"},\\\"spec\\\":{\\\"entityOperator\\\":{\\\"topicOperator\\\":{},\\\"userOperator\\\":{}},\\\"kafka\\\":{\\\"config\\\":{\\\"default.replication.factor\\\":3,\\\"inter.broker.protocol.version\\\":\\\"3.4\\\",\\\"min.insync.replicas\\\":2,\\\"offsets.topic.replication.factor\\\":3,\\\"transaction.state.log.min.isr\\\":2,\\\"transaction.state.log.replication.factor\\\":3},\\\"kubernetes.io/ingress.class\\\":\\\"nginx\\\",\\\"listeners\\\":[{\\\"name\\\":\\\"plain\\\",\\\"port\\\":9092,\\\"tls\\\":false,\\\"type\\\":\\\"internal\\\"},{\\\"name\\\":\\\"tls\\\",\\\"port\\\":9093,\\\"tls\\\":true,\\\"type\\\":\\\"internal\\\"},{\\\"configuration\\\":{\\\"bootstrap\\\":{\\\"annotations\\\":{\\\"kubernetes.io/ingress.class\\\":\\\"nginx\\\"},\\\"host\\\":\\\"kafka-bootstrap.192.168.1.149.nip.io\\\"},\\\"brokers\\\":[{\\\"annotations\\\":{\\\"kubernetes.io/ingress.class\\\":\\\"nginx\\\"},\\\"broker\\\":0,\\\"host\\\":\\\"kafka-broker-0.192.168.1.149.nip.io\\\"},{\\\"annotations\\\":{\\\"kubernetes.io/ingress.class\\\":\\\"nginx\\\"},\\\"broker\\\":1,\\\"host\\\":\\\"kafka-broker-1.192.168.1.149.nip.io\\\"},{\\\"annotations\\\":{\\\"kubernetes.io/ingress.class\\\":\\\"nginx\\\"},\\\"broker\\\":2,\\\"host\\\":\\\"kafka-broker-2.192.168.1.149.nip.io\\\"}]},\\\"name\\\":\\\"external\\\",\\\"port\\\":9094,\\\"tls\\\":true,\\\"type\\\":\\\"ingress\\\"}],\\\"replicas\\\":3,\\\"storage\\\":{\\\"type\\\":\\\"jbod\\\",\\\"volumes\\\":[{\\\"deleteClaim\\\":false,\\\"id\\\":0,\\\"size\\\":\\\"100Gi\\\",\\\"type\\\":\\\"persistent-claim\\\"}]},\\\"version\\\":\\\"3.4.0\\\"},\\\"zookeeper\\\":{\\\"replicas\\\":3,\\\"storage\\\":{\\\"deleteClaim\\\":false,\\\"size\\\":\\\"100Gi\\\",\\\"type\\\":\\\"persistent-claim\\\"}}}}\\n\"},\"creationTimestamp\":\"2023-04-15T05:06:03Z\",\"generation\":1,\"managedFields\":[{\"apiVersion\":\"kafka.strimzi.io/v1beta2\",\"fieldsType\":\"FieldsV1\",\"fieldsV1\":{\"f:metadata\":{\"f:annotations\":{\".\":{},\"f:kubectl.kubernetes.io/last-applied-configuration\":{}}},\"f:spec\":{\".\":{},\"f:entityOperator\":{\".\":{},\"f:topicOperator\":{},\"f:userOperator\":{}},\"f:kafka\":{\".\":{},\"f:config\":{\".\":{},\"f:default.replication.factor\":{},\"f:inter.broker.protocol.version\":{},\"f:min.insync.replicas\":{},\"f:offsets.topic.replication.factor\":{},\"f:transaction.state.log.min.isr\":{},\"f:transaction.state.log.replication.factor\":{}},\"f:listeners\":{},\"f:replicas\":{},\"f:storage\":{\".\":{},\"f:type\":{},\"f:volumes\":{}},\"f:version\":{}},\"f:zookeeper\":{\".\":{},\"f:replicas\":{},\"f:storage\":{\".\":{},\"f:deleteClaim\":{},\"f:size\":{},\"f:type\":{}}}}},\"manager\":\"kubectl-client-side-apply\",\"operation\":\"Update\",\"time\":\"2023-04-15T05:06:03Z\"},{\"apiVersion\":\"kafka.strimzi.io/v1beta2\",\"fieldsType\":\"FieldsV1\",\"fieldsV1\":{\"f:status\":{\".\":{},\"f:conditions\":{},\"f:observedGeneration\":{}}},\"manager\":\"strimzi-cluster-operator\",\"operation\":\"Update\",\"subresource\":\"status\",\"time\":\"2023-04-15T05:12:19Z\"}],\"name\":\"hm-kafka\",\"namespace\":\"hm-kafka\",\"resourceVersion\":\"7024\",\"uid\":\"68c256b7-eab5-4ce5-986e-f83726b8b825\"},\"spec\":{\"entityOperator\":{\"topicOperator\":{},\"userOperator\":{}},\"kafka\":{\"config\":{\"default.replication.factor\":3,\"inter.broker.protocol.version\":\"3.4\",\"min.insync.replicas\":2,\"offsets.topic.replication.factor\":3,\"transaction.state.log.min.isr\":2,\"transaction.state.log.replication.factor\":3},\"kubernetes.io/ingress.class\":\"nginx\",\"listeners\":[{\"name\":\"plain\",\"port\":9092,\"tls\":false,\"type\":\"internal\"},{\"name\":\"tls\",\"port\":9093,\"tls\":true,\"type\":\"internal\"},{\"configuration\":{\"bootstrap\":{\"annotations\":{\"kubernetes.io/ingress.class\":\"nginx\"},\"host\":\"kafka-bootstrap.192.168.1.149.nip.io\"},\"brokers\":[{\"annotations\":{\"kubernetes.io/ingress.class\":\"nginx\"},\"broker\":0,\"host\":\"kafka-broker-0.192.168.1.149.nip.io\"},{\"annotations\":{\"kubernetes.io/ingress.class\":\"nginx\"},\"broker\":1,\"host\":\"kafka-broker-1.192.168.1.149.nip.io\"},{\"annotations\":{\"kubernetes.io/ingress.class\":\"nginx\"},\"broker\":2,\"host\":\"kafka-broker-2.192.168.1.149.nip.io\"}]},\"name\":\"external\",\"port\":9094,\"tls\":true,\"type\":\"ingress\"}],\"replicas\":3,\"storage\":{\"type\":\"jbod\",\"volumes\":[{\"deleteClaim\":false,\"id\":0,\"size\":\"100Gi\",\"type\":\"persistent-claim\"}]},\"version\":\"3.4.0\"},\"zookeeper\":{\"replicas\":3,\"storage\":{\"deleteClaim\":false,\"size\":\"100Gi\",\"type\":\"persistent-claim\"}}},\"status\":{\"conditions\":[{\"lastTransitionTime\":\"2023-04-15T05:12:19.304453964Z\",\"message\":\"Exceeded timeout of 300000ms while waiting for Ingress resource hm-kafka-kafka-bootstrap in namespace hm-kafka to be addressable\",\"reason\":\"TimeoutException\",\"status\":\"True\",\"type\":\"NotReady\"}],\"observedGeneration\":1}}": strict decoding error: unknown field "spec.kafka.kubernetes.io/ingress.class"

注意

严格解码错误:未知字段“spec.kafka.kubernetes.io/ingress.class”

里面。

然后我发现并阅读了this这似乎是同样的错误并得到了解决,但是里面没有提到最终配置。这是一个副本:

“在配置部分配置Ingress类”是什么意思?任何指南将不胜感激,谢谢!

kubernetes apache-kafka kubernetes-ingress strimzi
© www.soinside.com 2019 - 2024. All rights reserved.