hiện tại tôi đã khám phá Multus CNI cho dự án thử nghiệm của mình về việc di chuyển Máy ảo hoặc một số Ứng dụng mà chúng tôi không muốn (không thể thay đổi mã nguồn) về địa chỉ IP nên tôi buộc phải thách thức rằng tôi cần sử dụng IP cố định
hiện tại tôi đã thành công trong việc sử dụng Multus với Pod có IP phụ thông qua MacVLAN
trên Node trong Kubernetes của tôi rồi.
Tôi đã có hai mạng con 192.168.15.0/24 (Khu vực công cộng)
và 192.168.16.0/24(Khu riêng tư)
đối với mỗi IP cư trú trong vùng của họ (mạng con), nó có thể kết nối thành công giữa Kubernetes Node như Công nhân A chứa nhóm 192.168.15.10
có thể ping đến Công nhân B chứa nhóm 192.168.15.11
bởi vì chúng là cùng một mạng con (cùng MACVLAN)
**Nhưng tôi yêu cầu phải có pod với MACVLAN khác (mạng con khác) mới có thể kết nối với nhau ** như thế này Công nhân A chứa nhóm 192.168.15.10
có thể ping đến Công nhân B chứa nhóm 192.168.16.10
(Mạng con công cộng kết nối với Vùng mạng con an toàn)
Trong khái niệm Mạng bình thường, chúng tôi sẽ yêu cầu bộ định tuyến
đúng ? Bởi vì hiện tại cấu trúc liên kết của tôi sẽ trông giống như hình ảnh này
tín dụng: https://www.practicalnetworking.net/stand-alone/routing-between-vlans/
Hình ảnh ví dụ về Logical Switch khi sử dụng VLAN
Như chúng ta thấy trong hình hiện tại chúng ta có mạng con khác nhau và nó không có một số liên kết cáp trung gian giữa công tắc nên không thể định tuyến/kết nối. Vậy làm cách nào tôi có thể tạo Bộ định tuyến hợp lý để thành công nỗ lực này? Có thể không? Hoặc tôi đang gây hiểu lầm trong bất kỳ khái niệm thiết kế Mạng/Kubernetes nào?
Trong ảnh này, bạn sẽ thấy nhóm của tôi gắn vào Giao diện mạng con công cộng
có thể ping/kết nối với nhau trên Kubernetes Node do macvlan
nhưng nếu tôi sử dụng cầu thì nó sẽ yêu cầu cả hai nằm trong cùng một máy chủ.
Ảnh về Pod và Giao diện mạng của tôi
Tôi muốn thử một cái gì đó như thế này vì tôi muốn mô phỏng cấu trúc liên kết mạng tương tự như Máy ảo tại chỗ để tôi có thể có một số Máy ảo di chuyển tự động sang Kubernetes mà không cần bất kỳ mã thay đổi nào. (Hiện tại tôi cũng đã khám phá KubeVirt)
Nhưng trong bối cảnh của tôi, tôi không có giải pháp doanh nghiệp như ESXI hoặc bất kỳ thứ gì tương tự như ảnh chụp nhanh Máy ảo đơn giản và tải lên Kubernetes chỉ bằng cách sử dụng KubeVirt nên Cấu trúc liên kết mạng là nền tảng của thử nghiệm di chuyển này.
Cảm ơn bạn rất nhiều vì đã trả lời bất kỳ ý tưởng/giúp đỡ nào trước :)
Đây là ví dụ của tôi
Ví dụ về NetworkAttachmentDefinition của tôi
apiVersion: k8s.cni.cncf.io/v1
loại: NetworkAttachmentDefinition
metadata:
tên: macvlan-public
không gian tên: công ty kế thừa
thông số kỹ thuật:
cấu hình: >-
{
"cniVersion": "0.3.1",
"loại": "macvlan",
"bridge": "macvlan-public-zone",
"ipam": {
"type": "host-local",
"mạng con": "192.168.15.0/24",
"rangeStart": "192.168.15.10",
"rangeEnd": "192.168.15.200"
}
}
---
apiVersion: k8s.cni.cncf.io/v1
loại: NetworkAttachmentDefinition
metadata:
tên: macvlan-an toàn
không gian tên: công ty kế thừa
thông số kỹ thuật:
cấu hình: >-
{
"cniVersion": "0.3.1",
"loại": "macvlan",
"bridge": "macvlan-secure-zone",
"ipam": {
"type": "host-local",
"mạng con": "192.168.16.0/24",
"rangeStart": "192.168.16.10",
"rangeEnd": "192.168.16.200"
}
}
---
Pod Ví dụ với Giao diện Mạng Phụ của Multus
loại: Triển khai
apiVersion: ứng dụng/v1
metadata:
tên: cầu-công
nhãn:
ứng dụng: bridge-public
thông số kỹ thuật:
bản sao: 1
bộ chọn:
trận đấuNhãn:
ứng dụng: bridge-public
mẫu:
metadata:
nhãn:
ứng dụng: bridge-public
chú thích:
k8s.v1.cni.cncf.io/networks: '[
{ "name": "macvlan-public"}]'
thông số kỹ thuật:
nútChọn:
kubernetes.io/tên máy chủ: 10.111.147.164
serviceAccountName: mặc định
hộp đựng:
- tên: cầu-công
hình ảnh: "quay.io/linxianer12/nettool:0.0.4"
imagePullPolicy: Luôn luôn
bối cảnh bảo mật:
khả năng:
cộng:
- "NET_RAW"
restartPolicy: Luôn luôn
chấm dứtGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
---
loại: Triển khai
apiVersion: ứng dụng/v1
metadata:
tên: cầu an toàn
nhãn:
ứng dụng: cầu an toàn
thông số kỹ thuật:
bản sao: 1
bộ chọn:
trận đấuNhãn:
ứng dụng: cầu an toàn
mẫu:
metadata:
nhãn:
ứng dụng: cầu an toàn
chú thích:
k8s.v1.cni.cncf.io/networks: '[
{ "name": "macvlan-secure"}]'
thông số kỹ thuật:
serviceAccountName: mặc định
hộp đựng:
- tên: cầu an toàn
hình ảnh: "quay.io/linxianer12/nettool:0.0.4"
imagePullPolicy: Luôn luôn
bối cảnh bảo mật:
khả năng:
cộng:
- "NET_RAW"