333*_*hin 7 amazon-ec2 kubernetes
目标:在AWS上创建一个k8s LoadBalancer服务,其IP为静态
我没有问题,可以通过预先分配一个静态IP并通过loadBalancerIP属性将其传递给GKE来完成此操作:
$ kubectl apply -f - <<EOF
apiVersion: v1
kind: Service
metadata:
name: dave
loadBalancerIP: 17.18.19.20
...etc...
Run Code Online (Sandbox Code Playgroud)
但是在AWS中执行相同操作会导致externalIP停留<pending>在状态以及Events历史记录中的错误
删除该loadBalancerIP值可使k8s旋转经典LB:
$ kubectl describe svc dave
Type: LoadBalancer
IP: 100.66.51.123
LoadBalancer Ingress: ade4d764eb6d511e7b27a06dfab75bc7-1387147973.us-west-2.elb.amazonaws.com
...etc...
Run Code Online (Sandbox Code Playgroud)
但是AWS明确警告我IP是短暂的(有时是2),而Classic IP似乎不支持附加静态IP
谢谢你的时间
正如 @Quentin 所指出的,AWS 网络负载均衡器现在支持 K8s
https://aws.amazon.com/blogs/opensource/network-load-balancer-support-in-kubernetes-1-9/
在 Kubernetes 1.9 版本中,我添加了对将新网络负载均衡器与 Kubernetes 服务结合使用的支持。这是一个 alpha 级别的功能,截至目前尚未准备好用于生产集群或工作负载,因此请确保在尝试之前阅读有关 NLB 的文档。通过 NLB 公开服务的唯一要求是添加带有 nlb 值的注释 service.beta.kubernetes.io/aws-load-balancer-type。
完整的示例如下所示:
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
labels:
app: nginx
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
spec:
externalTrafficPolicy: Local
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1529 次 |
| 最近记录: |