接着上文,排除故障后,我重新配置了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 LoadBalance 私有环境解决方案 == metallb 工具安装和使用介绍 K8S LoadBalance 私有环境解决方案 == metallb 工具安装和使用介绍](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuam13d3cubmV0L3VwbG9hZHMvYWxsaW1nLzIwMjAvMi9CUlJudWUuanBn.jpg?w=700&webp=1)
step 3: # 查看配置过程 # pod名称,来自step 1查询pod结果 root >> kubectl get all -n metallb-system root >> kubectl logs -f controller-5f898b44f4-4pkk6 -n metallb-system
![K8S LoadBalance 私有环境解决方案 == metallb 工具安装和使用介绍 K8S LoadBalance 私有环境解决方案 == metallb 工具安装和使用介绍](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuam13d3cubmV0L3VwbG9hZHMvYWxsaW1nLzIwMjAvMi9FYkludWUuanBn.jpg?w=700&webp=1)
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
root >> kubectl get all -n app -o wide
![K8S LoadBalance 私有环境解决方案 == metallb 工具安装和使用介绍 K8S LoadBalance 私有环境解决方案 == metallb 工具安装和使用介绍](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuam13d3cubmV0L3VwbG9hZHMvYWxsaW1nLzIwMjAvMi9OQjducWkuanBn.jpg?w=700&webp=1)
<1> cluster_ip : service_port
root >> curl http://10.3.2.28:8090
![K8S LoadBalance 私有环境解决方案 == metallb 工具安装和使用介绍 K8S LoadBalance 私有环境解决方案 == metallb 工具安装和使用介绍](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuam13d3cubmV0L3VwbG9hZHMvYWxsaW1nLzIwMjAvMi9WM3lhbXEuanBn.jpg?w=700&webp=1)
root >> curl http://10.5.0.3:8090
![K8S LoadBalance 私有环境解决方案 == metallb 工具安装和使用介绍 K8S LoadBalance 私有环境解决方案 == metallb 工具安装和使用介绍](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuam13d3cubmV0L3VwbG9hZHMvYWxsaW1nLzIwMjAvMi9VdkF2dXUuanBn.jpg?w=700&webp=1)