【kubernetes】k8s部署OpenELB及在KubeSphere使用OpenELB

OpenELB

官网 https://openelb.io
本文内容学习于马士兵云原生课程

概述

OpenELB is an open-source load balancer implementation designed for bare-metal Kubernetes clusters.
OpenELB是一个为裸机Kubernetes集群设计的开源负载均衡器实现。

In cloud-based Kubernetes clusters, Services are usually exposed by using load balancers provided by cloud vendors. However, cloud-based load balancers are unavailable in bare-metal environments. OpenELB allows users to create LoadBalancer Services in bare-metal, edge, and virtualization environments for external access, and provides the same user experience as cloud-based load balancers.
在基于云的Kubernetes集群中,服务通常通过使用云供应商提供的负载均衡器来公开。
但是,基于云的负载均衡器在裸机环境中不可用。
OpenELB允许用户在裸机、边缘和虚拟化环境中创建LoadBalancer服务以供外部访问,并提供与基于云的负载均衡器相同的用户体验。

部署

在k8s安装

#安装
kubectl apply -f https://raw.githubusercontent.com/openelb/openelb/master/deploy/openelb.yaml
#查看相关Pod状态
kubectl get pods -n openelb-system

#删除openelb
kubectl delete -f https://raw.githubusercontent.com/openelb/openelb/master/deploy/openelb.yaml
#查看openelb namespace是否存在
kubectl get ns
#不出所料,拉取镜像失败
kubectl describe pod openelb-admission-create-l6tcg -n openelb-system

在这里插入图片描述

#使用命令将openelb.yaml配置文件下载下来
wget https://raw.githubusercontent.com/openelb/openelb/master/deploy/openelb.yaml
#这个文件超长,对vi命令不熟悉的,直接down下来编辑
kubectl apply -f openelb.yaml
kubectl get pods -n openelb-system
kubectl delete -f openelb.yaml

修改镜像信息,官网yaml已经给出如下提示,搜索containers,有两处需要修改
在这里插入图片描述

#k8s-master下载镜像,很怪,前两个节点可以下载,第三个节点下载巨慢。。。。。
docker pull kubesphere/openelb:v0.5.1
#打包镜像
docker save -o openelb.tar kubesphere/openelb:v0.5.1
#拷贝镜像到其他节点
scp openelb.tar root@k8s-node1:/root
#导入镜像
docker load -i openelb.tar

等待一会儿,查看是否为Running状态
在这里插入图片描述

部署成功
在这里插入图片描述

在KubeSphere安装

OpenELB配置

Step 1: Enable strictARP for kube-proxy

#命令方式
kubectl edit configmap kube-proxy -n kube-system
#该项改为true
ipvs:
  strictARP: true
#该项改为ipvs
mode: ipvs  

#重启
kubectl rollout restart daemonset kube-proxy -n kube-system
#查看状态
kubectl get pods -n kube-system

或者直接在kubesphere上操作
在这里插入图片描述
保存更新,之后

执行如下命令

kubectl rollout restart daemonset kube-proxy -n kube-system
kubectl get pods -n kube-system
#age 单位是s了,重启成功

#确认配置生效
kubectl get configmap -n kube-system kube-proxy -o yaml | grep strictARP

在这里插入图片描述
在这里插入图片描述

Step 2: Specify the NIC Used for OpenELB

NIC(Network Interface Card ,网络接口卡、网卡)

#多个网卡,需要指定  192.168.8.11 master节点IP
# kubectl annotate nodes k8s-master01 layer2.openelb.kubesphere.io/v1alpha1="192.168.8.11"

只有一个网卡,暂时不需要配置
在这里插入图片描述

Step 3: Create an Eip Object

#创建eip对象
#mkdir eip
#cd eip
#vim layer2-eip.yaml
apiVersion: network.kubesphere.io/v1alpha2
kind: Eip
metadata:
  name: layer2-eip
spec:
  address: 192.168.8.70-192.168.8.99
  interface: ens32
  protocol: layer2

在这里插入图片描述

kubectl apply -f layer2-eip.yaml
kubectl get eip

在这里插入图片描述

OpenELB使用

k8s命令行

KubeSphere

创建项目

之前已创建
在这里插入图片描述

创建工作负载

之前已经创建了mysql,配置了外网访问NodePort,删除外网访问svc.
在这里插入图片描述
在这里插入图片描述

创建服务

编辑外网访问
上面已经删除了之前创建的外网访问,这里重新编辑外网访问。

#将下面的键值对填写到注解列表中
lb.kubesphere.io/v1alpha1:openelb
protocol.openelb.kubesphere.io/v1alpha1:layer2
eip.openelb.kubesphere.io/v1alpha2:layer2-eip

在这里插入图片描述
ip使用1
在这里插入图片描述
编辑服务,服务端口改为80
在这里插入图片描述
测试连接
在这里插入图片描述

创建应用路由

在这里插入图片描述
在这里插入图片描述

#没有DNS服务器,暂时在hosts下配置域名解析
192.168.8.70 kw-mysql.cn

在这里插入图片描述

补充Nacos集群外网访问配置

之前搭建的Nacos集群,还没用使用OpenELB。

重新配置一下。

修改application.properties

上面将mysql的容器暴露端口修改为了80,所以需要修改application.properties的数据库连接地址

mysql端口为 80

创建服务

kw-nacos-svc
在这里插入图片描述

#将下面的键值对填写到注解列表中
lb.kubesphere.io/v1alpha1:openelb
protocol.openelb.kubesphere.io/v1alpha1:layer2
eip.openelb.kubesphere.io/v1alpha2:layer2-eip

在这里插入图片描述
在这里插入图片描述
ip使用2
在这里插入图片描述

创建应用路由

kw-nacos

填写规则即可,不需要添加注解
在这里插入图片描述

#宿主机配置域名解析
192.168.8.71 kw.nacos.cn

测试访问
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
k8s离线一键部署Kubesphere需要以下步骤: 1. 准备离线环境:首先需要将Kubesphere部署所需的软件包和依赖项下载到离线环境中。这包括Kubernetes、Helm、ETCD、Metrics Server等等。可以通过访问Kubesphere官网或者软件源网站下载所需软件包。 2. 安装Kubesphere离线包:将下载好的Kubesphere离线包上传至离线环境中,并进行解压。在解压后的目录中,运行安装脚本,如`./install.sh`。这会自动安装和配置Kubesphere所需要的组件和服务。 3. 配置集群信息:一键部署脚本通常会提供一个配置文件,用于指定Kubernetes集群的相关信息。在安装过程中,需要根据实际情况修改配置文件中的参数,例如指定Master和Worker节点的IP地址、集群网络配置、存储类型等等。 4. 启动Kubesphere部署:在配置完成后,执行启动命令如`./install.sh start`,脚本将自动开始部署Kubesphere。可以通过查看日志来跟踪安装进度,如`./install.sh log`。 5. 验证Kubesphere部署:一旦脚本执行完毕,可以使用Kubectl命令来检查Kubesphere是否已经成功部署。运行`kubectl get pods -n kubesphere-system`命令,可以查看Kubesphere系统命名空间中的所有Pod状态。确保所有Pod都处于运行中的状态。 6. 访问Kubesphere控制台:在部署成功后,可以通过浏览器访问通过配置文件指定的URL地址,例如`https://<Your_Kubesphere_IP>`。输入默认的管理员用户名和密码,即可登录到Kubesphere控制台。从控制台中,可以管理和监控Kubernetes集群,创建和管理应用程序等等。 通过以上步骤,就可以在离线环境中使用一键部署脚本来部署Kubesphere。这个过程可能因系统和配置而略有差异,但总体流程是相似的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值