本篇文章转自Kube-OVN社区成员技术博客,介绍了KubeVirt通过Kube-OVN的Underlay网络模式,使虚拟机接入物理网络的实现。
作者:苏楷,宁算(南京)科技有限公司高级工程师
实践操作
检查Kubernetes使用的Pod网络地址段和Service网络地址段。
sukai@ubuntuserver:/etc/kubernetes/manifests$ sudo grep cidr kube-controller-manager.yaml
- --allocate-node-cidrs=true
- --cluster-cidr=10.244.0.0/16
sukai@ubuntuserver:/etc/kubernetes/manifests$ sudo grep range kube-controller-manager.yaml
- --service-cluster-ip-range=10.211.0.0/16
检查kube-ovn-controller配置项是否正确
kube-ovn在版本v1.11.0开始支持keep-vm-ip参数,虚拟机使用固定IP地址。
Containers:
kube-ovn-controller:
Container ID: containerd://0f8d53403c9821c7b535c64d2c98e1ca130a15e1b2b878270cd9388c36d0e48a
Image: kubeovn/kube-ovn:v1.11.0
Image ID: docker.io/kubeovn/kube-ovn@sha256:fea623e68a2a81ef78102c6cfe95b96c16c054c57f4c8b9d168bd3ff620b6779
Port: <none>
Host Port: <none>
Args:
/kube-ovn/start-controller.sh
--default-cidr=10.244.0.0/16
--default-gateway=10.244.0.1
--default-gateway-check=true
--default-logical-gateway=false
--default-exclude-ips=
--node-switch-cidr=100.64.0.0/16
--service-cluster-ip-range=10.211.0.0/16
--network-type=geneve
--default-interface-name=
--default-vlan-id=100
--pod-nic-type=veth-pair
--enable-lb=true
--enable-np=true
--enable-eip-snat=true
--enable-external-vpc=true
--keep-vm-ip=true
创建服务网络
指定物理服务器上访问物理网络的网卡。
apiVersion: kubeovn.io/v1
kind: ProviderNetwork
metadata:
name: office
spec:
defaultInterface: eno1
创建VLAN
创建在指定服务网络上创建一个VLAN,这里VLAN ID为0表示不属于任何VLAN。
apiVersion: kubeovn.io/v1
kind: Vlan
metadata:
name: defaultvlan
spec:
id: 0
provider: office
创建子网
在defaultvlan上,创建一个子网,这个子网作用的namespace为mail263,指定子网分配的物理网络地址段,物理网络网关地址。
---
apiVersion: kubeovn.io/v1
kind: Subnet
metadata:
name: mail263
spec:
protocol: IPv4
cidrBlock: 172.16.3.0/24
gateway: 172.16.3.2
excludeIps:
- 172.16.3.1..172.16.3.200
vlan: defaultvlan
# natOutgoing: false
#private: false
namespaces:
- mail263
查看kube-ovn信息
sukai@ubuntuserver:~$ kubectl get vla