我通過 .docker 安裝了 docker 和 minikube Docker for Windows Installer.exe。這安裝了 Docker Desktop 2.1.0.1。

Docker 版本 -
PS C:\myk8syamls> docker version
Client: Docker Engine - Community
Version: 19.03.1
API version: 1.40
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:17:08 2019
OS/Arch: windows/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.1
API version: 1.40 (minimum version 1.12)
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:17:52 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.2.6
GitCommit: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
runc:
Version: 1.0.0-rc8
GitCommit: 425e105d5a03fabd737a126ad93d62a9eeede87f
docker-init:
Version: 0.18.0
GitCommit: fec3683
k8s版本-
PS C:\myk8syamls> kubectl.exe version
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.3", GitCommit:"5e53fd6bc17c0dec8434817e69b04a25d8ae0ff0", GitTreeState:"clean", BuildDate:"2019-06-06T01:44:30Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.3", GitCommit:"5e53fd6bc17c0dec8434817e69b04a25d8ae0ff0", GitTreeState:"clean", BuildDate:"2019-06-06T01:36:19Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
創建 k8s 服務后,我無法通過本地機器訪問它們。
PS C:\myk8syamls> kubectl.exe get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 101d
nginx-clusterip-svc ClusterIP 10.96.214.171 <none> 80/TCP 26m
nginx-nodeport-svc NodePort 10.101.9.117 <none> 80:30007/TCP,8081:30008/TCP 26m
postgres NodePort 10.103.103.87 <none> 5432:32345/TCP 101d
我試過 -通過點擊
10.101.9.117:30007 和 10.101.9.117:80訪問 nodeport 服務,nginx-nodeport-svc
- 沒有作業
和
我試過 -通過點擊
10.96.214.171:80訪問 clusterip 服務nginx-clusterip-svc
- 沒有用
如何從本地機器訪問這些服務?這對我來說非常重要,因此非常感謝您的幫助。
uj5u.com熱心網友回復:
您需要將 nginx 集群公開為外部服務。
$ kubectl expose deployment nginx --port=80 --target-port=80 \
--type=LoadBalancer
service "nginx" exposed
可能需要幾分鐘才能看到 EXTERNAL_IP 的值。
然后,您可以訪問 http://EXTERNAL_IP/ 以查看通過網路負載平衡提供服務的服務器。
uj5u.com熱心網友回復:
負載均衡器:這是云中許多 Kubernetes 安裝的默認方法,而且效果很好。它支持多種協議和每個服務的多個埠。但默認情況下,它為每個服務使用一個 IP,并且該 IP 被配置為在云中配置自己的負載均衡器。這些增加了成本和開銷,這對于具有多項服務的每個集群來說都是多余的,如今幾乎每個集群都如此。
NodePort: 是集群中每個作業節點上的一個開放埠,該節點具有用于該服務的 pod。當在該開放埠上接收到流量時,它會將其定向到 ClusterIP 上的特定埠以用于它所代表的服務。在單節點集群中,這非常簡單。在多節點集群中,內部路由會變得更加復雜。在這種情況下,您可能需要引入外部負載均衡器,以便將流量分散到所有節點,并能夠更輕松地處理故障。
在您的情況下,這也適用,您需要創建一個公開部署的服務物件:
kubectl expose deployment hello-world --type=NodePort --name=nginx-nodeport-svc
有關更多詳細資訊,請查看此公共檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/347323.html
標籤:码头工人 Kubernetes 迷你酷 码头工人桌面
