我正在尝试升级我的Kubernetes集群中的节点。当我去做的时候,我收到一份通知,上面写着:
命名空间istio系统中的PDB ingressgateway允许0荚中断。
PDB是Pod破坏预算。基本上,istio是说它不能松开那个吊舱,让事情正常运转。
在Istio 讨论问题上,关于这一点有一个非常长的GitHub。这个问题已经持续了两年多。大多数讨论都围绕着说违约是错误的。没有什么变通的建议。但大多数都是1.4前(以及Istiod的引入)。我发现与当前版本兼容的最接近的解决方法是将添加一些额外的副本与IstioOperator兼容。
我尝试使用修补程序操作(在PowerShell中运行):
kubectl patch IstioOperator installed-state --patch $(Get-Content istio-ha-patch.yaml -Raw) --type=merge -n istio-system
其中istio-ha-patch.yaml
是:
spec:
components:
egressGateways:
- enabled: true
k8s:
hpaSpec:
minReplicas: 2
name: istio-egressgateway
ingressGateways:
- enabled: true
k8s:
hpaSpec:
minReplicas: 2
name: istio-ingressgateway
pilot:
enabled: true
k8s:
hpaSpec:
minReplicas: 2
我应用了它,并检查了IstioOperator的yaml,它确实应用于资源的yaml。但入口豆荚的复制品数量并没有上升。(它保持在1中的1.)
此时,我唯一的选择是卸载Istio,应用我的更新,然后重新安装Istio。(恶心)
是为了获取Istio入口网关的副本计数,这样我就可以像滚动节点升级一样运行它?
发布于 2021-05-14 01:21:06
如果您没有使用操作符安装Istio,则不能使用我尝试过的选项。
一旦我卸载了Istio并使用操作符重新安装了它,我就能够让它工作了。
虽然我没有使用修补程序,但我只是做了一个kubectl apply -f istio-operator-spec.yaml
,其中istio-operator-spec.yaml
是:
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
name: istio-controlplane
namespace: istio-system
spec:
components:
ingressGateways:
- enabled: true
k8s:
hpaSpec:
minReplicas: 2
name: istio-ingressgateway
pilot:
enabled: true
k8s:
hpaSpec:
minReplicas: 2
profile: default
https://stackoverflow.com/questions/67516156
复制相似问题