开发者社区> 问答> 正文

如何通过负载均衡(Server Load Balancer)访问服务?

如何通过负载均衡(Server Load Balancer)访问服务?

展开
收起
小天使爱美 2020-03-31 15:17:37 585 0
1 条回答
写回答
取消 提交回答
  • 您可以使用阿里云负载均衡来访问服务。

    通过命令行操作 通过命令行工具创建一个 Nginx 应用。 root@master # kubectl run nginx --image=registry.aliyuncs.com/acs/netdia:latest root@master # kubectl get po NAME READY STATUS RESTARTS AGE nginx-2721357637-d**** 1/1 Running 1 6s 为 Nginx 应用创建阿里云负载均衡服务,指定 type=LoadBalancer 来向外网用户暴露 Nginx 服务。 root@master # kubectl expose deployment nginx --port=80 --target-port=80 --type=LoadBalancer root@master # kubectl get svc NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx 172...*** 101...** 80:3***/TCP 4s 在浏览器中访问 http://101..*.**,来访问您的 Nginx 服务。 更多信息 阿里云负载均衡还支持丰富的配置参数,包含健康检查、收费类型、负载均衡类型等参数。

    注释 阿里云可以通过注释的形式支持丰富的负载均衡功能。

    使用已有的内网 SLB

    通过CloudShell 连接 Kubernetes 集群。 创建并拷贝如下内容到slb.svc文件中,并执行kubectl apply -f slb.svc命令。 apiVersion: v1 kind: Service metadata: annotations: service.beta.kubernetes.io/alicloud-loadbalancer-address-type: intranet service.beta.kubernetes.io/alicloud-loadbalancer-id: your-loadbalancer-id service.beta.kubernetes.io/alicloud-loadbalancer-force-override-listeners: "true" labels: run: nginx name: nginx namespace: default spec: ports: - name: web port: 80 protocol: TCP targetPort: 80 selector: run: nginx sessionAffinity: None type: LoadBalancer 说明 需要指定三个 annotation。注意修改成您自己的 Loadbalancer-id。 创建 HTTPS 类型的 Loadbalancer

    先在阿里云控制台上创建一个证书并记录 cert-id, 然后使用如下 annotation 创建一个 HTTPS 类型的 SLB。 apiVersion: v1 kind: Service metadata: annotations: service.beta.kubernetes.io/alicloud-loadbalancer-cert-id: your-cert-id service.beta.kubernetes.io/alicloud-loadbalancer-protocol-port: "https:443" labels: run: nginx name: nginx namespace: default spec: ports: - name: web port: 443 protocol: TCP targetPort: 443 selector: run: nginx sessionAffinity: None type: LoadBalancer 说明 注释的内容是区分大小写的。 注释 描述 默认值 service.beta.kubernetes.io/alicloud-loadbalancer-protocol-port 多个值之间由逗号分隔,比如:https:443,http:80 无 service.beta.kubernetes.io/alicloud-loadbalancer-address-type 取值可以是 internet 或者 intranet internet service.beta.kubernetes.io/alicloud-loadbalancer-slb-network-type 负载均衡的网络类型,取值可以是 classic 或者 vpc classic service.beta.kubernetes.io/alicloud-loadbalancer-charge-type 取值可以是 paybytraffic 或者 paybybandwidth paybybandwidth service.beta.kubernetes.io/alicloud-loadbalancer-id 负载均衡实例的 ID。通过 loadbalancer-id 指定您已有的 SLB,已有 listener 会被覆盖, 删除 service 时该 SLB 不会被删除。 无 service.beta.kubernetes.io/alicloud-loadbalancer-backend-label 通过 label 指定 SLB 后端挂哪些节点。 无 service.beta.kubernetes.io/alicloud-loadbalancer-region 负载均衡所在的地域 无 service.beta.kubernetes.io/alicloud-loadbalancer-bandwidth 负载均衡的带宽 50 service.beta.kubernetes.io/alicloud-loadbalancer-cert-id 阿里云上的证书 ID。您需要先上传证书 “” service.beta.kubernetes.io/alicloud-loadbalancer-health-check-flag 取值是 on 或者 off 默认为 off。TCP 不需要改参数。因为 TCP 默认打开健康检查,用户不可设置。 service.beta.kubernetes.io/alicloud-loadbalancer-health-check-type 参见HealthCheck 无 service.beta.kubernetes.io/alicloud-loadbalancer-health-check-uri 参见 HealthCheck 无 service.beta.kubernetes.io/alicloud-loadbalancer-health-check-connect-port 参见 HealthCheck 无 service.beta.kubernetes.io/alicloud-loadbalancer-healthy-threshold 参见 HealthCheck 无 service.beta.kubernetes.io/alicloud-loadbalancer-unhealthy-threshold 参见 HealthCheck 无 service.beta.kubernetes.io/alicloud-loadbalancer-health-check-interval 参见 HealthCheck 无 service.beta.kubernetes.io/alicloud-loadbalancer-health-check-connect-timeout 参见 HealthCheck 无 service.beta.kubernetes.io/alicloud-loadbalancer-health-check-timeout 参见 HealthCheck 无

    2020-03-31 15:23:33
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
阿里云网络-SLB负载均衡产品介绍 立即下载
《应用型负载均衡ALB产品解读》 立即下载
大规模场景下KubernetesService 负载均衡性能 立即下载