Tôi đã cài đặt minikube trên máy ubuntu 16.04 của tôi và đã bắt đầu một cụm, với một thông điệpminikube: không thể kết nối một dịch vụ nginx triển khai tại địa phương
"Kubernetes is available at https://192.168.99.100:443"
Tiếp theo, tôi đã triển khai dịch vụ nginx như sau lệnh
> kubectl.sh run my-nginx --image=nginx --replicas=2 --port=80 --expose
> kubectl.sh get pods -o wide
NAME READY STATUS RESTARTS AGE NODE
my-nginx-2494149703-8jnh4 1/1 Running 0 13m 127.0.0.1
my-nginx-2494149703-q09be 1/1 Running 0 13m 127.0.0.1
> kubectl.sh get services -o wide
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
kubernetes 10.0.0.1 <none> 443/TCP 14m <none>
my-nginx 10.0.0.83 <none> 80/TCP 13m run=my-nginx
> kubectl.sh get nodes -o wide
NAME STATUS AGE
127.0.0.1 Ready 16m
Câu hỏi:
1) Nút 127.0.0.1 là máy phát triển cục bộ của tôi? Điều này khiến tôi làm tôi bối rối nhất.
2) Hiểu đúng sau đây của tôi: Cụm (nút, máy chủ API kubernetes) có địa chỉ IP nội bộ trong 10.0.0.x và địa chỉ IP bên ngoài tương ứng của chúng là 192.168.99.x. 2 pods sau đó sẽ có IP trong phạm vi như 10.0.1.x và 10.0.2.x?
3) Tại sao IP bên ngoài cho các dịch vụ không có? Không, ngay cả đối với dịch vụ kubernetes. Không phải là 192.168.99.43 một IP bên ngoài ở đây?
4) Quan trọng nhất, làm cách nào để kết nối với dịch vụ nginx từ máy tính xách tay của tôi?
Cảm ơn Steve! Một cách khác để truy cập dịch vụ (nếu bạn không muốn sử dụng một NodePort), là sử dụng cổng chuyển tiếp kubectl để truy cập vào vỏ bên dưới. Ví dụ, bạn có thể chạy: 'kubectl port-forward mypod 8080: 8080', để làm cho nhóm có sẵn trên http: // localhost: 8080 – dlorenc
Cảm ơn Steve. Về câu trả lời đầu tiên của bạn, bạn có nghĩa là để nói rằng 127.0.0.1 là giao diện nw duy nhất của nút (VM trong trường hợp này) mà các pod bên trong nó có thể giao tiếp, phải không? Thứ hai, khi tôi chạy 'kubectl exec my-nginx-yczg9 - sh -c' ifconfig -a '', nó cho eth0 với một số IP như 172.17.0.4 Bây giờ, như tôi đã hiểu, my-nginx-yczg9 là một Vì vậy, nó là công bằng để nói rằng 172.17.0.4:80 là một IP Pod (ảo IP-endpoint?), mà sẽ được proxied vào container nginx thích hợp chạy bên trong vỏ và container sẽ có IP trong subnet docker bên trong? – soupybionics
Cảm ơn diorec, lệnh port forward hoạt động như thế nào? Vui lòng sửa tôi nếu tôi sai: Theo sự hiểu biết của tôi, máy chủ lưu trữ cục bộ của tôi (tức là 127.0.0.1:8080) sẽ hoạt động như một proxy cho 192.168.99.100:30001, trong đó lệnh sẽ là myubod chuyển tiếp 8080: 30001 – soupybionics