003_部署loadbalance

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 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)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
15天前
|
弹性计算 监控 负载均衡
|
弹性计算 负载均衡 NoSQL
【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)(四)
【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)
113 0
|
15天前
|
负载均衡 网络协议 网络安全
SLB-Backend多实例部署配置健康检查
【10月更文挑战第22天】
38 3
|
15天前
|
运维 负载均衡 算法
|
16天前
|
存储 缓存 监控
SLB-Backend跨区域/跨数据中心部署
【10月更文挑战第21天】
33 9
|
16天前
|
弹性计算 缓存 监控
SLB-Backend多实例部署
【10月更文挑战第21天】
26 5
|
6月前
|
负载均衡 网络协议 算法
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
|
3月前
|
负载均衡 jenkins 应用服务中间件
大规模部署下的 Jenkins 高可用性与负载均衡
【8月更文第31天】随着软件开发流程的加速,持续集成/持续交付(CI/CD)工具的重要性日益凸显。Jenkins 作为最受欢迎的 CI/CD 平台之一,为企业提供了强大的自动化构建和部署功能。然而,在大规模部署场景下,单一的 Jenkins 实例可能无法满足高可用性和性能的需求。本文将探讨如何设计和实施 Jenkins 高可用集群,以支持大型组织的需求,并通过负载均衡技术来提高系统的稳定性和响应速度。
262 0
|
4月前
|
负载均衡 监控 算法
|
弹性计算 负载均衡 NoSQL
【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)(三)
【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)
110 0