【问题标题】:Cannot deploy virtual-server on Minikube无法在 Minikube 上部署虚拟服务器
【发布时间】:2021-12-18 09:38:27
【问题描述】:

我只是在探索并想掌管我的 k8dash,但由于我能够在 AWS EKS 上进行部署,因此出现了奇怪的错误。

我在我的 Minikube V1.23.2 上运行它们

我的掌舵版本是v3.6.2

Kubernetes kubectl 版本为v1.22.3

基本上,如果我做 helm 模板,VirtualServer 会是这样的:

apiVersion: k8s.nginx.org/v1
kind: VirtualServer
metadata:
  name: k8dash
  namespace: k8dash
spec:
  host: namahost.com
  routes:
  - action:
      pass: RELEASE-NAME
    path: /
  upstreams:
  - name: RELEASE-NAME
    port: 80
    service: RELEASE-NAME

我得到了这个错误:

Error: unable to build Kubernetes objects from release manifest: unable to recognize "": no matches for kind "VirtualServer" in version "k8s.nginx.org/v1"

这很奇怪,在 AWS EKS 上部署这个就好了,但是在本地出现了这个错误,我在谷歌搜索时找不到任何线索。和我的工具版本有关系吗?

【问题讨论】:

  • 您需要安装VirtualServer的运算符以及CRD定义
  • @rkosegi 对不起,我不明白。那我到底应该怎么做?

标签: kubernetes kubernetes-helm nginx-ingress


【解决方案1】:

您必须安装额外的 CRD,因为 VirtualServerVirtualServerRoute 都不是 oob,而是 nginx 资源。

CustomResourceDefinitions:

CustomResourceDefinition API 资源允许您定义自定义 资源。定义 CRD 对象会创建一个新的自定义资源,其中包含 您指定的名称和架构。 Kubernetes API 服务和 处理您的自定义资源的存储。 CRD 对象的名称 必须是有效的 DNS 子域名。

这使您无需编写自己的 API 服务器来处理自定义 资源,但实现的通用性意味着您拥有 灵活性不如 API 服务器聚合。


Nginx Create Custom Resources

注意:默认需要创建自定义资源定义 用于 VirtualServer、VirtualServerRoute、TransportServer 和 Policy。 否则,Ingress Controller pod 将不会变为 Ready。如果你愿意 喜欢禁用该要求,请配置 -enable-custom-resources 命令行参数为 false 并跳过此部分。

为 VirtualServer 和 VirtualServerRoute、TransportServer 和 Policy 资源创建自定义资源定义。

你可以在https://github.com/nginxinc/kubernetes-ingress/tree/master/deployments/common/crds下找到crds:

$ git clone https://github.com/nginxinc/kubernetes-ingress/
$ cd kubernetes-ingress/deployments
$ git checkout v2.0.3 (or latest, as you wish)

$ kubectl apply -f common/crds/k8s.nginx.org_virtualservers.yaml
$ kubectl apply -f common/crds/k8s.nginx.org_virtualserverroutes.yaml
$ kubectl apply -f common/crds/k8s.nginx.org_transportservers.yaml
$ kubectl apply -f common/crds/k8s.nginx.org_policies.yaml

申请成功后,您将可以同时创建VirtualServerVirtualServerRoute

【讨论】:

  • 啊,是的,谢谢,已经有一段时间没有互联网了。
猜你喜欢
  • 1970-01-01
  • 2019-05-09
  • 1970-01-01
  • 2017-01-04
  • 2016-10-29
  • 1970-01-01
  • 2020-03-05
  • 2013-08-19
  • 1970-01-01
相关资源
最近更新 更多