标签: kubernetes-ingress

在 Kubernetes Ingress 中从 v1beta1 切换到 v1 时出现错误“io.k8s.api.networking.v1.IngressBackend”中的“未知字段“serviceName”

我的 Ingress 使用了以下 YAML,它工作正常(并继续工作):

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  namespace: test-layer
annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
    - host: mylocalhost.com
      http:
        paths:
          - path: /
            backend:
              serviceName: test-app
              servicePort: 5000
Run Code Online (Sandbox Code Playgroud)

但是,它告诉我它已被弃用,我应该改为使用networking.k8s.io/v1. 当我这样做(见下文)时,它会引发错误。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test-ingress
  namespace: test-layer
annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
    - host: mylocalhost.com
      http:
        paths:
          - path: /
            backend:
              serviceName: test-app
              servicePort: 5000
Run Code Online (Sandbox Code Playgroud)

错误

error: error validating "test-ingress.yaml": 
  error validating data: [ValidationError(Ingress.spec.rules[0].http.paths[0].backend): 
    unknown field "serviceName" in io.k8s.api.networking.v1.IngressBackend, 
    ValidationError(Ingress.spec.rules[0].http.paths[0].backend): 
      unknown field "servicePort" …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubectl minikube kubernetes-ingress

68
推荐指数
1
解决办法
3万
查看次数

如何在GKE上为Kubernetes Ingress强制使用SSL

有没有办法强制对入口负载均衡器上的传入连接进行SSL升级?或者,如果无法使用,我可以禁用端口:80?我还没有找到一个很好的文档页面,它在YAML文件中概述了这样一个选项.非常感谢提前!

ssl kubernetes google-kubernetes-engine kubernetes-ingress

38
推荐指数
6
解决办法
2万
查看次数

通过 http 使用 nginx-ingress 的 Microk8s 仪表板无法正常工作(错误:`在版本“extensions/v1beta1”中没有与类型“Ingress”匹配`)

我在 Ubuntu 20.04.3 LTS 上运行 microk8s v1.22.2。

输出来自/etc/hosts

127.0.0.1 localhost
127.0.1.1 main
Run Code Online (Sandbox Code Playgroud)

摘自microk8s status

addons:
  enabled:
    dashboard            # The Kubernetes dashboard
    ha-cluster           # Configure high availability on the current node
    ingress              # Ingress controller for external access
    metrics-server       # K8s Metrics Server for API access to service metrics
Run Code Online (Sandbox Code Playgroud)

我检查了正在运行的仪表板 ( kubectl get all --all-namespaces):

NAMESPACE     NAME                                             READY   STATUS    RESTARTS   AGE
kube-system   pod/calico-node-2jltr                            1/1     Running   0          23m
kube-system   pod/calico-kube-controllers-f744bf684-d77hv      1/1     Running   0          23m
kube-system   pod/metrics-server-85df567dd8-jd6gj              1/1 …
Run Code Online (Sandbox Code Playgroud)

http kubernetes kubernetes-ingress nginx-ingress microk8s

35
推荐指数
2
解决办法
5万
查看次数

Nginx 入口控制器 - 调用 Webhook 失败

我在 Ubuntu 虚拟机上使用 kubeadm (v1.18) 设置了一个 k8s 集群。现在我需要添加一个入口控制器。我决定使用 nginx(但我对其他解决方案持开放态度)。我根据文档“裸机”部分安装了它:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-0.31.1/deploy/static/provider/baremetal/deploy.yaml

安装对我来说似乎很好:

kubectl get all -n ingress-nginx

NAME                                            READY   STATUS      RESTARTS   AGE
pod/ingress-nginx-admission-create-b8smg        0/1     Completed   0          8m21s
pod/ingress-nginx-admission-patch-6nbjb         0/1     Completed   1          8m21s
pod/ingress-nginx-controller-78f6c57f64-m89n8   1/1     Running     0          8m31s

NAME                                         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
service/ingress-nginx-controller             NodePort    10.107.152.204   <none>        80:32367/TCP,443:31480/TCP   8m31s
service/ingress-nginx-controller-admission   ClusterIP   10.110.191.169   <none>        443/TCP                      8m31s

NAME                                       READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/ingress-nginx-controller   1/1     1            1           8m31s

NAME                                                  DESIRED   CURRENT   READY   AGE
replicaset.apps/ingress-nginx-controller-78f6c57f64   1         1         1       8m31s

NAME …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubeadm kubernetes-ingress nginx-ingress

30
推荐指数
8
解决办法
3万
查看次数

不同命名空间中 k8s 的 Ingress 配置

我需要在 azure k8s 上配置 Ingress Nginx,我的问题是是否可以在一个命名空间等中配置 Ingress。ingress-nginx 和其他命名空间中的一些服务,例如。资源?我的文件看起来像这样:

# ingress-nginx.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-ingress-controller
  namespace: ingress-nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: ingress-nginx
  template:
    metadata:
      labels:
        app: ingress-nginx
      annotations:
        prometheus.io/port: '10254'
        prometheus.io/scrape: 'true' 
    spec:
      containers:
        - name: nginx-ingress-controller
          image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.12.0
          args:
            - /nginx-ingress-controller
            - --default-backend-service=$(POD_NAMESPACE)/default-http-backend
            - --configmap=$(POD_NAMESPACE)/nginx-configuration
            - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
            - --udp-services-configmap=$(POD_NAMESPACE)/udp-services
            - --annotations-prefix=nginx.ingress.kubernetes.io
            - --publish-service=$(POD_NAMESPACE)/ingress-nginx
          env:
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            - name: POD_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
          ports:
          - name: http
            containerPort: 80
          - …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-ingress nginx-ingress

29
推荐指数
4
解决办法
4万
查看次数

Kubenetes:是否可以在Kubernetes集群中使用单个请求命中多个pod

我想清除Kubernetes命名空间中所有pod中的缓存.我想向端点发送一个请求,然后该端点将向命名空间中的所有pod发送HTTP调用以清除缓存.目前,我只能使用Kubernetes命中一个pod,而我无法控制哪个pod会受到攻击.

即使负载均衡器设置为RR,连续点击pod(n次,其中n是pod的总数)也无济于事,因为其他一些请求可能会进入.

这里讨论了同样的问题,但我找不到实施的解决方案:https: //github.com/kubernetes/kubernetes/issues/18755

我正在尝试使用Hazelcast实现清除缓存部分,其中我将存储所有缓存,Hazelcast自动处理缓存更新.

如果有针对此问题的替代方法,或者配置kubernetes以针对某些特定请求命中所有端点,则在此处共享将是一个很大的帮助.

docker kubernetes kubernetes-ingress

25
推荐指数
2
解决办法
4825
查看次数

更新kubernetes helm值

我想更新我的群集上的helm版本的值配置.

就像是

helm update -f new_values.yml nginx-controller

kubernetes kubernetes-helm kubernetes-ingress

23
推荐指数
3
解决办法
2万
查看次数

如何将所有 kubernetes 入口 yaml 转换为使用 API 版本networking.k8s.io/v1

Kubernetes Ingress API 版本networking.k8s.io/v1在 wrt extensions/v1beta1 字段中有很多变化,如下所示:

* `spec.backend` -> `spec.defaultBackend`
* `serviceName` -> `service.name`
* `servicePort` -> `service.port.name` (for string values)
* `servicePort` -> `service.port.number` (for numeric values)
* `pathType` no longer has a default value in v1; "Exact", "Prefix", or "ImplementationSpecific" must be specified
Run Code Online (Sandbox Code Playgroud)

将所有入口 yaml 文件从 extensions/v1beta1 转换为networking.k8s.io/v1 的最简单方法是什么。

看起来 kubectl convert 在 v1.19 中已经被弃用了。

Kubernetes 版本:

kubectl version
Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.0", GitCommit:"e19964183377d0ec2052d1f1fa930c4d7575bd50", GitTreeState:"clean", BuildDate:"2020-08-26T14:30:33Z", GoVersion:"go1.15", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.0", …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubectl kubernetes-ingress kubernetes-apiserver

16
推荐指数
2
解决办法
8427
查看次数

如何删除 kubernetes 上的入口控制器?

我有一个 Kubernetes 集群,其中有多个入口控制器。我已经删除了一个入口控制器的源文件。如何删除我不再需要的入口控制器?

nginx kubernetes kubernetes-ingress nginx-ingress

16
推荐指数
1
解决办法
6万
查看次数

在没有 GCP 负载平衡器的情况下创建 kubernetes nginx 入口

所以我将 Kubernetes 用于一个副项目,它很棒。为我所从事的小型项目运行更便宜(3-5 个实例的小集群基本上可以在 GCP 上以大约 30 美元/月的价格提供我所需的一切)。

我唯一遇到困难的地方是尝试使用 kubernetes Ingress 资源映射到集群并扇出到我的微服务(它们是小型 Go 或 Node 后端)。我有将入口映射到不同服务的配置设置,那里没有问题。

我知道当你创建一个入口资源时,你真的可以很容易地让 GCP 启动一个 LoadBalancer。这很好,但它也代表了另外 20 美元/月,增加了项目成本。一旦/如果这件事得到一些关注,那可以忽略不计,但现在以及为了更好地理解 Kubernetes,我想执行以下操作:

  • 从 GCP 获取静态 IP,
  • 将它与入口资源一起使用
  • 在同一个集群中托管负载均衡器(使用 nginx 负载均衡器)
  • 避免为外部负载均衡器付费

有什么办法甚至可以使用 Kubernetes 和入口资源来完成吗?

谢谢!

nginx google-cloud-platform kubernetes google-kubernetes-engine kubernetes-ingress

15
推荐指数
1
解决办法
4686
查看次数