:
:
我遵循本教程,嘗試設(shè)置本地k8s部署+服務(wù)。我成功運行了以下命令:
$ kubectl config use-context docker-desktop
Switched to context "docker-desktop".
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
docker-desktop Ready control-plane 154m v1.24.1
$ kubectl create deployment simple-webapp \
--image training/webapp \
--replicas=2 \
--port=5000
deployment.apps/simple-webapp created
$ kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
simple-webapp 2/2 2 2 3m23s
$ kubectl create service loadbalancer simple-webapp \
--tcp=80:5000
service/simple-webapp created
$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 156m
simple-webapp LoadBalancer 10.109.168.49 80:30582/TCP 9m34s
然而,當我嘗試運行教程中提到的curl 時,我得到的不是預期的輸出(Hello world!),而是:
<html>
<head><title>301 Moved Permanentlytitle>head>
<body>
<center><h1>301 Moved Permanentlyh1>center>
<hr><center>nginx/1.21.2center>
body>
html>
我brand-new到k8s,不知道從哪里開始診斷問題。不確定這是否有用,但我運行了 ps,看起來有兩個k8s-容器當前正在運行:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
411b7110b315 training/webapp "python app.py" 11 minutes ago Up 11 minutes k8s_webapp_simple-webapp-5d47556b5-jkvsc_default_9893ef1a-4bc5-43f3-80ac-151d567a89f6_0
9752c12315cc training/webapp "python app.py" 11 minutes ago Up 11 minutes k8s_webapp_simple-webapp-5d47556b5-269s8_default_5c50b3f8-57a9-4066-bd66-498cd30c758c_0
我確實看到curl輸出中引用了nginx,這是否意味著301重定向來自/進程內(nèi)部的容器?如果是這樣,我該如何解決?
編輯:我嘗試在不同的端口(5001而不是5000)上創(chuàng)建部署和服務(wù)本地打印服務(wù)沒有運行,因為當我遵循教程的第1部分時,我遇到了端口5000已經(jīng)在使用的問題。這對教程的第1部分起到了作用,但不幸的是,它并沒有解決我在第2部分中的問題-我在使用端口5000和5001時遇到了相同的301 問題。
編輯2:當我運行 get pods時,我看到以下內(nèi)容:
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
simple-webapp-5d47556b5-sg9h4 1/1 Running 0 32s
simple-webapp-5d47556b5-xw2nh 1/1 Running 0 32s
即使在運行curl以確認pod已啟動之后本地打印服務(wù)沒有運行,我仍會繼續(xù)看到301 。
編輯3:我確實注意到,當我運行 get nodes時,單個節(jié)點的角色是-plane,而不是教程中提到的-plane,。我還注意到,運行 get 表明負載平衡器的-IP是,而不是教程中預期的。這些事實中有一個是相關(guān)的嗎?
編輯4:在接下來的教程中,我們刪除了先前創(chuàng)建的部署和服務(wù),并使用.yml和.yml文件以及命令 apply -f .yml和 apply -f .yml將它們re-刪除。當我將教程中的YAML復制/粘貼到具有指定文件名的新文件中時,我得到了相同的301 錯誤。
編輯5:在這條黑客新聞評論中,我看到從v1.24開始刪除了對的支持。我之前將我的自制版本升級到了1.24,因為我以前的版本不支持--標志。當我閱讀這個時,我降級到v1.22(以前的版本),通過 驗證版本是否正確,刪除/重新創(chuàng)建-部署和服務(wù),并再次嘗試curl。我仍然得到301 錯誤。
編輯6:以下是curl -v 的完整輸出:
curl -v http://localhost
* Trying 127.0.0.1:80...
* Connected to localhost (127.0.0.1) port 80 (#0)
> GET / HTTP/1.1
> Host: localhost
> User-Agent: curl/7.79.1
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 301 Moved Permanently
< Server: nginx/1.21.2
< Date: Mon, 25 Jul 2022 04:53:40 GMT
< Content-Type: text/html
< Content-Length: 169
< Connection: keep-alive
< Location: https://localhost/
<
<html>
<head><title>301 Moved Permanentlytitle>head>
<body>
<center><h1>301 Moved Permanentlyh1>center>
<hr><center>nginx/1.21.2center>
body>
html>
* Connection #0 to host localhost left intact