首先,先介绍一下这个问题的背景。
EKS
版本 >= 的集群1.15
EFS
等工作正常EKS
security group
mount target
CSI
的驱动程序已安装并按预期工作EFS
EKS
efs-sc
使用EFS CSI
驱动程序作为配置程序的存储类EFS
Pod 上的音量/
但是......只有当它是被定义为持久卷资源定义中的路径的根路径时,它才有效kubernetes
。
Terraform 0.12 语法示例
resource "kubernetes_persistent_volume" "vol" {
metadata {
name = "my-vol"
}
spec {
capacity = {
storage = "15Gi"
}
access_modes = ["ReadWriteMany"]
storage_class_name = "efs-sc"
persistent_volume_reclaim_policy = "Recycle"
persistent_volume_source {
nfs {
path = "/" # -> OK it works properly
# …
Run Code Online (Sandbox Code Playgroud) amazon-web-services kubernetes terraform amazon-efs amazon-eks
我正在尝试使用Kubernetes中Traefik入口控制器提供的基于路径的路由机制,但URL重写存在一些问题。
我的[更新]配置如下
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/auth-type: "basic"
traefik.ingress.kubernetes.io/auth-tls-insecure: "true"
traefik.ingress.kubernetes.io/frontend-entry-points: "http,https"
traefik.ingress.kubernetes.io/app-root: "/"
traefik.ingress.kubernetes.io/rule-type: "PathPrefixStrip"
traefik.ingress.kubernetes.io/rewrite-target: "/"
name: webapp-ingress
namespace: my-company
spec:
rules:
- host: local-ubuntu
- http:
paths:
- path: /
backend:
serviceName: webapp
servicePort: 80
- path: /db
backend:
serviceName: db-manager
servicePort: 8081
Run Code Online (Sandbox Code Playgroud)
流量被路由到正确的服务,但是当我查看db-manager(kubernetes)服务的日志时,URL仍带有/ db前缀。我对PathPrefixStrip的预期是,流量将不带/ db前缀路由到运行db-manager微服务的容器,该容器正在后端监听/(http:// db-manager:8081)侧。
我想念什么吗?是traefik支持还是仅nginx支持?预先感谢您的反馈。
[编辑]
更具体地说,我将在下面讨论的当前注释中观察以下内容
网址:http:// local-ubuntu / db [确定]-> 200
然后其他资源正在加载,但指向错误的基本URL
例:
资源URL是:http://local-ubuntu/public/css/bootstrap.min.css
但这应该是:http://local-ubuntu/db/public/css/bootstrap.min.css (当我手动尝试时可以使用)
我不确定当前配置中缺少的内容。