我在 Digital Ocean 上有一个托管的 kubernetes 环境。它有一个负载均衡器。我正在尝试将 target_port 分配给 tcp:3000。
我希望外部端口为 tcp:80,内部端口为 tcp:3000。Kubernetes
对我来说很新,我唯一的参考框架是配置 nginx 反向代理。
以下是当前的转发规则:
entry_protocol:tcp,
entry_port:80,
target_protocol:tcp,
target_port:32726,
certificate_id:,
tls_passthrough:false
这是我尝试用来设置 target_port 规则的命令
doctl compute load-balancer add-forwarding-rules <LB_ID> --forwarding-rules target_port:30000
错误:
Error: POST https://api.digitalocean.com/v2/load_balancers/<LB_ID>/forwarding_rules: 422 (request "") forwarding rule entry port must be between 1 and 65535
我也尝试过使用协议名称
doctl compute load-balancer add-forwarding-rules <LB_ID> --forwarding-rules target_protocol:tcp,target_port:30000
错误:
Error: POST https://api.digitalocean.com/v2/load_balancers/<LB_ID>/forwarding_rules: 422 (request "") protocols are not on the same network layer
答案1
我试图为已经存在的入口端口添加一条规则。因此,我删除了入口端口 80 的规则并添加了另一条规则。我还必须添加占位符规则(未显示),以便始终有一个规则,否则 doctl 会抛出错误。
删除了转发规则
doctl compute load-balancer remove-forwarding-rules <LB> --forwarding-rules entry_protocol:tcp,entry_port:80,target_protocol:tcp,target_port:32726
添加了新的
doctl compute load-balancer add-forwarding-rules <LB_ID> --forwarding-rules entry_protocol:tcp,entry_port:80,target_protocol:tcp,target_port:3000