OpenStack与K3s/K8s的融合部署

1: K3s对接Kube-OVN

Kube-OVN 是一个符合 CNI 规范的网络组件,其运行需要依赖 Kubernetes 环境及对应的内核网络模块。 以下是通过测试的操作系统和软件版本,环境配置和所需要开放的端口信息。

软件版本

  • Kubernetes >= 1.23。
  • Docker >= 1.12.6, Containerd >= 1.3.4。
  • 操作系统: CentOS 7/8, Ubuntu 16.04/18.04/20.04。
  • 其他 Linux 发行版,需要检查一下内核模块是否存在 geneveopenvswitchip_tables 和 iptable_nat,Kube-OVN 正常工作依赖上述模块。

本次验证采用1.23.17版本的K3S和1.10.10版本的ovn

INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC='server --docker --flannel-backend=none --disable-network-policy --write-kubeconfig-mode 644 --write-kubeconfig ~/.kube/config' /root/k3s-v1.23.17/install.sh

此时检查 pod 会发现都处于 Pending 状态,这是因为还没安装 CNI。

检查node状态提示:container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized。

接下来开始部署kube-ovn

查看脚本中的配置:

REGISTRY="kubeovn"                     # 镜像仓库地址
VERSION="v1.10.6"                      # 镜像版本/Tag
POD_CIDR="10.16.0.0/16"                # 默认子网 CIDR 不要和 SVC/NODE/JOIN CIDR 重叠
SVC_CIDR="10.96.0.0/12"                # 需要和 apiserver 的 service-cluster-ip-range 保持一致
JOIN_CIDR="100.64.0.0/16"              # Pod 和主机通信网络 CIDR,不要和 SVC/NODE/POD CIDR 重叠
LABEL="node-role.kubernetes.io/master" # 部署 OVN DB 节点的标签
IFACE=""                               # 容器网络所使用的的宿主机网卡名,如果为空则使用 Kubernetes 中的 Node IP 所在网卡
TUNNEL_TYPE="geneve"                   # 隧道封装协议,可选 geneve, vxlan 或 stt,stt 需要单独编译 ovs 内核模块

k3s 的默认 POD 和 SVC CIDR 分别是:10.42.0.0/16 和 10.43.0.0/16,可以在安装时通过参数 --cluster-cidr 和 --service-cidr 分别进行设置。上面,安装 k3s 时使用了的默认配置,因此需要修改install.sh中的配置

POD_CIDR="10.42.0.0/16"
POD_GATEWAY="10.42.0.1"
SVC_CIDR="10.43.0.0/16"

修改之后,运行脚本安装:

bash install.sh

确认所有 pod 启动并运行:

kubectl get po -A
NAMESPACE     NAME                                      READY   STATUS    RESTARTS   AGE
kube-system   ovs-ovn-trqk5                             1/1     Running   0          2m37s
kube-system   kube-ovn-monitor-5f8f5dbfc-plfrq          1/1     Running   0          108s
kube-system   kube-ovn-controller-67bbd54575-2n87d      1/1     Running   0          108s
kube-system   ovn-central-644fbb8467-xtrjc              1/1     Running   0          2m37s
kube-system   kube-ovn-cni-glcfw                        1/1     Running   0          108s
kube-system   kube-ovn-pinger-2k72d                     1/1     Running   0          71s
kube-system   local-path-provisioner-6c79684f77-jh2zh   1/1     Running   0          71s
kube-system   coredns-d76bd69b-w28rg                    1/1     Running   0          37s
kube-system   metrics-server-7cd5fcb6b7-8jgdm           1/1     Running   0          36s

检查 kube-system 下的 DaemonSet 类型应用,运行在各个 node 上负责 ovs/ovn、CNI 和网络检查 ping。

[root@host-172-28-12-10 ~]# kubectl get ds -A
NAMESPACE     NAME                     DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
kube-system   ovs-ovn                  1         1         1       1            1           kubernetes.io/os=linux   80m
kube-system   kube-ovn-cni             1         1         1       1            1           kubernetes.io/os=linux   80m
kube-system   kube-ovn-pinger          1         1         1       1            1           kubernetes.io/os=linux   80m

至此 kube-ovn 就安装完成了,可以开始体验下 kube-ovn 的功能。

2:OpenStack Neutron对接OVN

参考:

Installation — networking-ovn 3.0.0.0b3.dev22 documentation
​​​​​​​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

领悟云计算

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值