栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

k8s中MetalLB的使用

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

k8s中MetalLB的使用

1.官方链接
https://metallb.universe.tf/concepts/

操作步骤 step 1 安装MetalLB
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.12.1/manifests/namespace.yaml
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.12.1/manifests/metallb.yaml
step 2 配置config, 以layer2协议为例

config.yaml的内容如下:

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: dev-public-ips
      protocol: layer2
      addresses:
      - 10.0.2.100-10.0.2.200

其中,dev-public-ips为自定义名称,后面会用到, addresses为自定义地址池

step 3 以nginx为例

(1) Deployment
nginx-deployment.yaml 的内容如下

root@unode1:~/metallb/example# cat nginx-deployment.yaml 
apiVersion: apps/v1
kind: Deployment      
metadata:
name: pc-deployment
namespace: dev
spec: 
replicas: 3
selector:
  matchLabels:
    app: nginx-pod
template:
  metadata:
    labels:
      app: nginx-pod
  spec:
    containers:
    - name: nginx
      image: nginx:1.17.1
      ports:
      - containerPort: 80

应用Deployment该文件
kubectl apply -f nginx-deployment.yaml
(2) Service

root@unode1:~/metallb/example# cat service-metallb.yaml 
apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: dev
  annotations:
    metallb.universe.tf/address-pool: dev-public-ips  #注意,dev-public-ips为config.yaml地址池的名称
spec:
  ports:
  - port: 81   #external ip的端口
    targetPort: 80 # 内部容器端口
  selector:
    app: nginx-pod
  type: LoadBalancer

应用Service文件
kubectl apply -f service-metallb.yaml
(3)参看Service

root@unode1:~/metallb/example# kubectl get svc -n dev
NAME    TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
nginx   LoadBalancer   10.109.79.140   10.0.2.101    81:30182/TCP   14h

其中81为EXTERNAL-IP的端口, 30182为node端口, 访问测试如下:
测试1

root@unode1:~/metallb/example# curl 10.0.2.101:81



Welcome to nginx!



Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

测试2

root@unode1:~/metallb/example# curl 10.0.2.4:30182  #10.0.2.4为node的ip



Welcome to nginx!



Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/865118.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号