我在GKE上设置k8s群集。通配符DNS *.server.com
将指向Ingress控制器。在集群内部,将有Web服务器pod,每个都暴露一个独特的服务。 Ingress控制器将使用服务器名称路由到各种服务。
几乎每天都会创建和销毁服务器。我想知道是否有一种方法可以从入口控制器添加和删除命名服务器,而无需编辑整个命名服务器列表。
答案 0 :(得分:0)
我找到了一种通过执行以下补丁将规则添加到入口的方法:
[
{
"op": "add",
"path": "/spec/rules/-",
"value": {
"host": "<HOST>",
"http": {
"paths": [
{
"path": "/*",
"backend": {
"serviceName": "<SERVICE_NAME>",
"servicePort": <PORT>
}
}
]
}
}
}
]
kubectl patch ingress ${INGRESS_NAME} --type json -p "$(cat patch.json)"
但是我找不到删除它的解决方案。我尝试过的是以下补丁;
[
{
"op": "remove",
"path": '{.spec.rules[?(@.host=="<HOST>")]}'
}
]
但是我刚刚从kubectl中得到了错误“ The”无效”
这有什么问题? 我遵循了https://kubernetes.io/docs/reference/kubectl/jsonpath/
的jsonPath语法