003_部署loadbalance

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 003_部署loadbalance

专注方向:

自动化流程服务

it咨询

it在线教学


doc

https://metallb.universe.tf/apis/

介绍

k8s 默认给每个 svc 分配的 都是 集群内部 ip

也就是 部署 网络 组件时 指定的 pod net cird


但是 有些服务需要 单独 ip 使用体验更好

比如, vpn 服务, dns 服务


默认的 k8s 是不支持 loadbalance svc 的。

需要 安装 插件


loadbalance 超出了calico 的工作范围,请安装 metallb 服务


Service LoadBalancer address allocation is outside the current scope of Calico, but can be implemented with an external controller. You can build your own, or use a third-party implementation like the MetalLB project.

参考

k8s\deploy\config\metallb

doc


loadbalance 超出了calico 的工作范围,请安装 metallb 服务


Service LoadBalancer address allocation is outside the current scope of Calico, but can be implemented with an external controller. You can build your own, or use a third-party implementation like the MetalLB project.


https://metallb.universe.tf/installation/#installation-by-manifest

镜像准备

host_ip=192.168.31.21
export  http_proxy="http://${host_ip}:7890"
export  https_proxy="http://${host_ip}:7890"
export  no_proxy="localhost,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.svc,.cluster.local,my-cluster-endpoint.com"
# yeah, ctr can pull images with the env variable http_proxy, but crictl cannot~
ctr -n k8s.io images pull  quay.io/metallb/controller:v0.13.7
ctr -n k8s.io images pull   quay.io/metallb/speaker:v0.13.7

部署服务

kubectl apply -f metallb-native.yaml
kubectl get pod -n metallb-system
# NAME                          READY   STATUS    RESTARTS   AGE
# controller-84d6d4db45-vr747   1/1     Running   0          13s
# speaker-q8wkk                 1/1     Running   0          13s

定义网络池

kubectl apply -f ip_pool.yaml
# ipaddresspool.metallb.io/cheap created

测试外部ip 分配

kubectl apply -f nginx_use_special_ip.yaml
# kubectl -n nginx-lb get svc
# NAME       TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)        AGE
# nginx-lb   LoadBalancer   10.110.12.11   192.168.31.225   80:32408/TCP   46s

metallb-native.yaml

kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.7/config/manifests/metallb-native.yaml

ip_pool.yaml

apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: net-192-168
  namespace: metallb-system
spec:
  addresses:
  # 225-238 is available, Because the home switch cannot modify the IP mask
  - 192.168.31.225-192.168.31.249
  avoidBuggyIPs: true
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: cheap-l2
  namespace: metallb-system
spec:
  ipAddressPools: [net-192-168]

nginx_use_special_ip.yaml

apiVersion: v1
kind: Namespace
metadata:
  name: nginx-lb
  labels:
    name: nginx-lb
---
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: nginx-lb
  name: nginx-deployment
  labels:
    app: nginx-lb
spec:
  selector:
    matchLabels:
      app: nginx-lb
  replicas: 2 # tells deployment to run 2 pods matching the template
  template:
    metadata:
      labels:
        app: nginx-lb
    spec:
      containers:
      - name: nginx-lb
        image: docker.io/library/nginx:1.23.2
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  namespace: nginx-lb
  name: nginx-lb
  annotations:
    metallb.universe.tf/address-pool: net-192-168
spec:
  ports:
  - port: 80
    targetPort: 80
  selector:
    app: nginx-lb
  type: LoadBalancer
相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
12月前
|
弹性计算 负载均衡 NoSQL
【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)(四)
【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)
100 0
|
12月前
|
弹性计算 负载均衡 NoSQL
【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)(二)
【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)
|
12月前
|
弹性计算 负载均衡 NoSQL
【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)(一)
【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)
|
12月前
|
存储 负载均衡 调度
Docker 多主机部署:构建容器集群的最佳实践,助力高可用性与负载均衡
Docker 多主机部署:构建容器集群的最佳实践,助力高可用性与负载均衡
731 0
|
5月前
|
负载均衡 网络协议 算法
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
|
2月前
|
负载均衡 jenkins 应用服务中间件
大规模部署下的 Jenkins 高可用性与负载均衡
【8月更文第31天】随着软件开发流程的加速,持续集成/持续交付(CI/CD)工具的重要性日益凸显。Jenkins 作为最受欢迎的 CI/CD 平台之一,为企业提供了强大的自动化构建和部署功能。然而,在大规模部署场景下,单一的 Jenkins 实例可能无法满足高可用性和性能的需求。本文将探讨如何设计和实施 Jenkins 高可用集群,以支持大型组织的需求,并通过负载均衡技术来提高系统的稳定性和响应速度。
90 0
|
3月前
|
负载均衡 监控 算法
|
3月前
|
Kubernetes Cloud Native 微服务
企业级容器部署实战:基于ACK与ALB灵活构建云原生应用架构
这篇内容概述了云原生架构的优势,特别是通过阿里云容器服务Kubernetes版(ACK)和应用负载均衡器(ALB)实现的解决方案。它强调了ACK相对于自建Kubernetes的便利性,包括优化的云服务集成、自动化管理和更强的生态系统支持。文章提供了部署云原生应用的步骤,包括一键部署和手动部署的流程,并指出手动部署更适合有技术背景的用户。作者建议在预算允许的情况下使用ACK,因为它能提供高效、便捷的管理体验。同时,文章也提出了对文档改进的建议,如添加更多技术细节和解释,以帮助用户更好地理解和实施解决方案。最后,展望了ACK未来在智能化、安全性与边缘计算等方面的潜在发展。水文一篇,太忙了,见谅!
|
12月前
|
弹性计算 负载均衡 NoSQL
【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)(三)
【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)
|
5月前
|
网络协议 Linux C语言
Intel HDSLB 高性能四层负载均衡器 — 基本原理和部署配置
本篇主要介绍了 Intel HDSLB 的基本运行原理和部署配置的方式,希望能够帮助读者们顺利的把 HDSLB-DPVS 项目 “玩” 起来。
276 9
Intel HDSLB 高性能四层负载均衡器 — 基本原理和部署配置
下一篇
无影云桌面