Docker 具有kubernetes的MacVlan网络
我使用Docker 具有kubernetes的MacVlan网络,docker,kubernetes-pod,k3s,macvlan,Docker,Kubernetes Pod,K3s,Macvlan,我使用k3s设置了kubernetes集群。我有一个主节点和两个节点。我在其中一个节点上创建了dockermacvlan网络。 我想实现下面提到的场景 将IP分配给容器/pod。(用户定义的IP,而不是群集IP) 问题1.docker macvlan是否有其他选择 我们可以在节点上运行命令吗(不是在pod/容器上)?(部署吊舱/服务时) 我们可以用用户定义的IP创建kubernetes网络吗?(我认为LB/NP/Ingress对用户定义的IP没有帮助,如果我错了,请纠正我!)Kubernetes
k3s
设置了kubernetes集群。我有一个主节点和两个节点。我在其中一个节点上创建了dockermacvlan
网络。
我想实现下面提到的场景
将IP分配给容器/pod。(用户定义的IP,而不是群集IP)
问题1.docker macvlan是否有其他选择
我们可以在节点上运行命令吗(不是在pod/容器上)?(部署吊舱/服务时)
我们可以用用户定义的IP创建kubernetes网络吗?(我认为LB/NP/Ingress对用户定义的IP没有帮助,如果我错了,请纠正我!)Kubernetes有自己非常专业的网络实现。它无法像Docker MacVLAN安装程序那样轻松地为每个进程分配唯一的外部可访问IP地址。Kubernetes也不能重用Docker网络基础设施。通常,集群负责为pod和服务分配IP地址,您不能自己指定它们
因此,在库伯内特斯:
您不能手动为对象分配IP地址李>
集群内部IP地址不能从集群外部直接访问李>
Kubernetes构造只能在任意选择的节点上启动容器(可能有一些约束;可能在每个节点上),但通常不会在单个特定节点上启动容器,也不能在节点上运行非容器命令
根据您所描述的,Salt Stack、Ansible或Chef等更通用的集群自动化工具可能会更好地满足您的需求。这将允许您直接在托管节点上启动进程,如果这些进程是服务器类型的进程,则可以使用主机的IP地址正常访问这些进程。Kubernetes有自己的非常专门的网络实现。它无法像Docker MacVLAN安装程序那样轻松地为每个进程分配唯一的外部可访问IP地址。Kubernetes也不能重用Docker网络基础设施。通常,集群负责为pod和服务分配IP地址,您不能自己指定它们
因此,在库伯内特斯:
您不能手动为对象分配IP地址李>
集群内部IP地址不能从集群外部直接访问李>
Kubernetes构造只能在任意选择的节点上启动容器(可能有一些约束;可能在每个节点上),但通常不会在单个特定节点上启动容器,也不能在节点上运行非容器命令
根据您所描述的,Salt Stack、Ansible或Chef等更通用的集群自动化工具可能会更好地满足您的需求。这将允许您直接在托管节点上启动进程,如果这些进程是服务器类型的进程,则可以使用主机的IP地址正常访问它们。您可以查看MetalLB,特别是Layer2和本地流量策略
()
您无法将IP分配给POD,但当您创建服务类型LoadBalancer(例如http路由服务,如Traefik)时,MetalLB将帮助将该服务绑定到节点的IP
例如,您可以看到服务Trafik的外部IP被报告为我节点的地址—192.168.1.201
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
node02 Ready <none> 8d v1.20.2+k3s1 192.168.1.202 <none> Alpine Linux v3.13 5.10.10-0-virt containerd://1.4.3-k3s1
node01 Ready control-plane,master 8d v1.20.2+k3s1 192.168.1.201 <none> Alpine Linux v3.13 5.10.10-0-virt containerd://1.4.3-k3s1
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
node02 Ready 8d v1.20.2+k3s1 192.168.1.202高山Linux v3.13 5.10.10-0-virt containerd://1.4.3-k3s1
节点01就绪控制平面,主控8d v1.20.2+k3s1 192.168.1.201高山Linux v3.13 5.10.10-0-virt containerd://1.4.3-k3s1
第二季度:
当然可以,k8s不会接管节点。你可以用ssh连接到它,然后随心所欲地运行它
第一季度:
没有
命名空间名称类型CLUSTER-IP EXTERNAL-IP端口
默认服务/kubernetes ClusterIP 10.43.0.1 443/TCP
kube系统服务/kube dns群集IP 10.43.0.10 53/UDP、53/TCP、9153/TCP
kube系统服务/度量服务器群集IP 10.43.254.20 443/TCP
kube系统服务/traefik LoadBalancer 10.43.130.1192.168.1.201 80:31666/TCP,443:31194/TCP,8080:31199/TCP
默认服务/whoami群集IP 10.43.61.10 80/TCP
您可以查看MetalLB,特别是第2层和本地流量策略
()
您无法将IP分配给POD,但当您创建服务类型LoadBalancer(例如http路由服务,如Traefik)时,MetalLB将帮助将该服务绑定到节点的IP
例如,您可以看到服务Trafik的外部IP被报告为我节点的地址—192.168.1.201
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
node02 Ready <none> 8d v1.20.2+k3s1 192.168.1.202 <none> Alpine Linux v3.13 5.10.10-0-virt containerd://1.4.3-k3s1
node01 Ready control-plane,master 8d v1.20.2+k3s1 192.168.1.201 <none> Alpine Linux v3.13 5.10.10-0-virt containerd://1.4.3-k3s1
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
node02 Ready 8d v1.20.2+k3s1 192.168.1.202高山Linux v3.13 5.10.10-0-virt containerd://1.4.3-k3s1
节点01就绪控制平面,主控8d v1.20.2+k3s1 192.168.1.201高山Linux v3.13 5.10.10-0-virt containerd://1.4.3-k3s1
第二季度:
当然可以,k8s不会接管节点。你可以用ssh连接到它,然后随心所欲地运行它
第一季度:
没有
命名空间名称类型CLUSTER-IP EXTERNAL-IP端口
默认服务/kubernetes ClusterIP 10.43.0.1 443/TCP
库贝系统