K8S LoadBalance 私有环境解决方案 == metallb 工具安装和使用介绍

接着上文,排除故障后,我重新配置了metallb组件到k8s环境。

metallb为k8s service 的loadbalance负载方式提供免费的解决方案。

external-ip的收费方案,可以选择GRE或Azure,或其他国内云商LB方案。

以下是详细安装和配置步骤:

step 1:

root >> kubectl apply -f \

https://raw.githubusercontent.com/danderson/metallb/main/manifests/metallb.yaml

root >> kubectl get all -n metallb-system

step 2:

# 生成一个configmap,

# 注意:这里的 IP 地址范围需要跟集群实际情况相对应。

# https://github.com/danderson/metallb/tree/main/manifests

# https://github.com/danderson/metallb/blob/main/manifests/tutorial-4.yaml

root >> kubectl apply -f - << EOF
apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    peers:
    # Cosmetic edit to make MetalLB notice that this is a new config.
    - my-asn: 64512
      peer-asn: 64512
      peer-address: 10.4.0.100
    - my-asn: 64512
      peer-asn: 64512
      peer-address: 10.4.0.101
    - my-asn: 64512
      peer-asn: 64512
      peer-address: 10.4.0.102
    address-pools:
    - name: my-ip-space
      protocol: bgp
      avoid-buggy-ips: true
      addresses:
      - 10.5.0.0/24

# 执行完毕如下图

# 然后,我们在k8s物理机器的外网(比如我这里一台客户机192.168.3.XX),访问上面configmap的四个IP

<1> IP_1 = 10.4.0.100 / 10.4.0.101 / 10.4.0.101

<2> IP_2 = 10.5.0.0/24 ==> 10.5.0.1 (也可以通过查询k8s service得到, kubectl get service --all-namespaces -o wide。)

root >> ping 10.4.0.100 -c 3

root >> ping 10.4.0.101 -c 3

root >> ping 10.4.0.102 -c 3

root >> ping 10.5.0.1 -c 3

step 3:

# 查看配置过程

# pod名称,来自step 1查询pod结果

root >> kubectl get all -n metallb-system

root >> kubectl logs -f controller-5f898b44f4-4pkk6 -n metallb-system

step 4:

# 创建一个私有loadbalance provider的nginx服务和部署,如下

root >> kubectl apply -f - << EOF
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-lb
  namespace: app
spec:
  selector:
    matchLabels:
      app: nginx-lb
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx-lb
    spec:
      containers:
      - name: nginx-lb
        image: nginx:1.7.9
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-lb
  namespace: app
spec:
  type: LoadBalancer
  ports:
  - port: 8090
    targetPort: 80
  selector:
    app: nginx-lb

step 5

# 查看创建后的结果,如下图
root >> kubectl get all -n app -o wide

# 测试一下nginx-lb的service,通过如下两个地址
<1> cluster_ip : service_port
root >> curl http://10.3.2.28:8090

<2> external_ip : service_port
root >> curl http://10.5.0.3:8090

原文地址:https://www.cnblogs.com/itshare/p/12096900.html

时间: 2024-10-03 15:48:28

K8S LoadBalance 私有环境解决方案 == metallb 工具安装和使用介绍的相关文章

go环境及bee工具安装

go环境及bee工具安装 一.go环境安装 1.解压go安装包:tar -xvf go1.11.1.linux-amd64.tar.gz -C /usr/local/ 2.设置go环境变量 export GOROOT=/usr/local/go export GOPATH=/app/apps export GOBIN=$GOROOT/bin export PATH=$PATH:$GOBIN:$GOPATH/bin 3 go环境验证 go version go version go1.11.1 l

【EDA开发环境】 Verdi工具安装教程

1. 前言 本文介绍Verdi工具的安装及破解过程.基于以下环境: 1. CentOS6.5 (32位), 运行于VMWare虚拟机中: 2. Verdi2014.03 3. 和谐工具运行于Win7 64bit. 4. scl11.4 2. 准备 1. 下载Verdi3-2014.03安装文件:(注意:不要在windows下解压缩,避免某些链接丢下) 2. 下载Synopsys scl工具,注意版本为11.4. 3. 下载和谐工具: 3. 安装 1. 将Verdi3-2014.03 压缩包全部拷

2017年Unity开发环境与插件配置安装(总体介绍)

最近(2017年初)有朋友问,Unity客户端开发如何在机器配置一般的情况下,配置更高效的开发环境,进一步加快开发进度. 推荐如下: Win10(或者Win8)+Unity5.5.1版本(2017年2月最新)+VS2012(或者VS2015) +UnityVS(支持Unity5.x版本)插件+Resharp8.0插件. 解释如下: 1: 操作系统推荐Win10或者Win8系统. 目前Unity5.0  以上版本都支持64位系统,带来更高的性能体验,所以不是太老的机器,一定用64位的Win操作系统

Mac环境下Myeclispe2015工具的安装与破解

首先是Myeclispe2015的下载,废话不多说,已传至百度云,直接下载即可. Myeclispe2015 for mac下载地址: 链接: http://pan.baidu.com/s/1qWzKzOK 密码: recx 然后是破解工具的下载(适用于2014与2015): 链接: http://pan.baidu.com/s/1jGxULnS 密码: crz3 Myeclispe工具下载完之后,直接安装即可, 打开myeclipse-2015-stable-2.0-offline-insta

Android NDK 简单介绍、工具安装、环境配置

NDK全称:Native Development Kit. 1.NDK是一系列工具的集合. * NDK提供了一系列的工具,帮助开发人员高速开发C(或C++)的动态库,并能自己主动将so和java应用一起打包成apk.这些工具对开发人员的帮助是巨大的. * NDK集成了交叉编译器,并提供了对应的mk文件隔离平台.CPU.API等差异,开发者仅仅须要简单改动mk文件(指出"哪些文件须要编译"."编译特性要求"等),就能够创建出so. * NDK能够自己主动地将so和Ja

Windows环境下 PyQt5 如何安装MySql驱动 (PyQt5连接MYSQL时显示Driver not loaded解决方案)

参考文章: https://blog.csdn.net/qq_38198744/article/details/80261695 前文说过如何在Ubuntu环境下 为PyQt5  安装MySql驱动, 这里面主要说的是如何在Windows环境下安装MySql驱动. # -*- coding: utf-8 -*- ''' [简介] PyQt5中 处理database 例子 ''' import sys from PyQt5.QtCore import * from PyQt5.QtGui impo

Java项目打包工具安装失败解决方法

在学习Java的时候我们打包项目但遇到如下情况:(提示没有找到java的运行环境!) 网上目前有两中的解决方案: (1)选择本地jdk环境; (2)下载Download 但是第一种选择本地老是失败(方法:点Locate找到你机器上已安装的JDK目录下/bin/java.exe就可以进行安装了) 目前我还没有解决的(如果成功的话,算你走运) 然后使用第一种但是下载的时候也是不能下载,解决方法.,换一个软件在重试,下载地址:http://www.pc6.com/softview/SoftView_6

k8s高可用环境部署-1.17.3版本

准备 在开始部署 k8s 高可用集群时,请先参考k8s高可用环境部署系统准备 操作系统兼容性 环境说明 集群部署前系统环境装备,请参考k8s高可用环境部署系统准备.md 本次高可用集群基本参照官网步骤进行部署,官网给出了两种拓扑结构:堆叠control plane node和external etcd node,本文基于第一种拓扑结构进行部署,使用Keepalived + HAProxy搭建高可用Load balancer,完整的拓扑图如下: 单个mastre节点将部署keepalived.ha

9款一键快速搭建PHP运行环境的好工具

原文链接: http://www.cmhello.com/a-key-build-php-environment.html 内容提要: 建立一个PHP网站,首先需要搭建PHP的开发和运行环境,对于PHP初学者也是一个难题,下面介绍部分一站式PHP环境搭建安装程序.小编推荐使用APMServ或者phpnow. 一键搭建PHP运行环境工具 1.APMServ http://apmserv.s135.com/国内研发,功能强大,操作简单,无需安装,只需鼠标一点,即可在自己的电脑上傻瓜全自动搭建一个完美