EDIT: Toàn bộ vấn đề của thiết lập của tôi là để đạt được (nếu có thể) như sau:Gán IP bên ngoài để một Kubernetes Dịch vụ
- Tôi có nhiều k8s các nút
- Khi tôi liên hệ với một địa chỉ IP (từ mạng của công ty tôi), nó sẽ được chuyển đến một trong các thùng chứa/nhóm/dịch vụ của tôi/bất cứ điều gì.
- tôi nên có thể dễ dàng thiết lập mà IP (như trong định nghĩa .yml dịch vụ của tôi)
Tôi đang chạy một cụm Kubernetes nhỏ (được xây dựng với kubeadm) để đánh giá nếu tôi có thể di chuyển Docker của tôi (cũ) Thiết lập Swarm thành k8. Tính năng tôi hoàn toàn cần là khả năng gán IP cho các vùng chứa, như tôi làm với MacVlan. Trong thiết lập docker hiện tại của tôi, tôi đang sử dụng MacVlan để gán địa chỉ IP từ mạng của công ty cho một số vùng chứa để tôi có thể liên lạc trực tiếp (không có proxy ngược) như thể đó là bất kỳ máy chủ vật lý nào. Tôi đang cố gắng để đạt được một cái gì đó tương tự với k8s.
tôi phát hiện ra rằng:
- tôi phải sử dụng Dịch vụ
- tôi không thể sử dụng loadbalancer loại, vì nó chỉ dành cho các nhà cung cấp điện toán đám mây tương thích (như GCE hoặc AWS).
- Tôi nên sử dụng ExternalIPs
- Tài nguyên Ingress là loại proxy ngược lại?
tập tin yaml của tôi là:
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
spec:
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
nodeSelector:
kubernetes.io/hostname: k8s-slave-3
---
kind: Service
apiVersion: v1
metadata:
name: nginx-service
spec:
type: ClusterIP
selector:
app: nginx
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
externalIPs:
- A.B.C.D
Tôi đã nhảy mà dịch vụ của tôi sẽ nhận được IP A.B.C.D (đó là một trong những mạng lưới của công ty tôi). Việc triển khai của tôi đang hoạt động khi tôi có thể tiếp cận vùng chứa nginx của tôi từ bên trong cụm k8s bằng cách sử dụng nó ClusterIP.
Tôi đang thiếu gì? Hoặc ít nhất, tôi có thể tìm thông tin về lưu lượng truy cập mạng của mình ở đâu để xem liệu các gói có đang đến không?
EDIT:
$ kubectl get svc
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes 10.96.0.1 <none> 443/TCP 6d
nginx-service 10.102.64.83 A.B.C.D 80/TCP 23h
Cảm ơn.
Bạn có chắc chắn rằng các IP bên ngoài đã đề cập các tuyến đến các nút cụm k8? Ngoài ra, bạn thấy gì khi chạy dịch vụ kubectl? –
Bạn có thể thử mà không chỉ định 'loại: ClusterIP' –
Tôi đã thêm đầu ra' kubectl get svc' làm EDIT. Loại bỏ 'loại: ClusterIP' không thay đổi bất cứ điều gì vì nó là giá trị mặc định. Làm thế nào tôi có thể kiểm tra xem lưu lượng truy cập đến cụm của tôi? Trong 'kube-proxy'? –