1。) 执行以下命令以生成一个随机数,供以后的步骤使用
NUMBER=$[ ( $RANDOM % 1000 ) + 1 ]
echo $NUMBER
注意:将句子中的随机数替换为在句子中发现的位置生成的数字。
您的任务是启动一个名为mycluster-your random number的由Kubernetes Cluster管理的Kubernetes Engine,并将其配置为运行2个节点。
2。) 运行和部署容器 在这里,您需要从云外壳启动Nginx容器(版本为1.10.0)的单个实例。
执行以下命令以查看nginx容器中正在运行的pod。**
3。) 首先,您需要将Nginx容器公开给互联网。
Kubernetes将使用带有公共IP地址的外部负载平衡器创建服务。您可以通过执行以下命令来查看服务。
kubectl get services
现在,您将获得Nginx群集的外部IP地址。打开新的Web浏览器选项卡,然后粘贴“群集外部IP”地址。您应该获得Nginx浏览器的默认主页。
到目前为止,我已使用以下代码,但lb无法正常工作:
gcloud container clusters create mycluster-5 --zone=us-central1-a
kubectl create deployment mycluster --image=gcr.io/cloud-marketplace/google/nginx1
kubectl set image deployment nginx nginx=nginx:1.9.1
kubectl expose deployment mycluster-727 --type LoadBalancer --port 80 --target-port 8080
service/mycluster-727 exposed
答案 0 :(得分:1)
由于端口未通过Pod暴露而无法工作的原因。请运行以下命令,而不是第二个命令。
kubectl run mycluster --image=gcr.io/cloud-marketplace/google/nginx1 --port=80
此命令应创建部署,并在80上公开containerPort
,您的服务也将可以命中。
答案 1 :(得分:0)
欢迎堆栈溢出!
您发布的命令不起作用,因为您有错字并且容器端口不匹配。
问题说明:
在这里,您正在创建一个名为mycluster
的新部署,但没有公开任何端口。
kubectl create deployment mycluster --image=gcr.io/cloud-marketplace/google/nginx1
在这里,您要在端口mycluster-727
上公开名为80
的部署,并将其部署到目标端口8080
:
kubectl expose deployment mycluster-727 --type LoadBalancer --port 80 --target-port 8080
在这里,您要在不同的部署nginx
上设置映像,并使用要求1.10.0
的不同版本:
kubectl set image deployment nginx nginx=nginx:1.9.1
解决问题
我已经检查过,图像gcr.io/cloud-marketplace/google/nginx1
和nginx:1.10.0
以及它们两者都使用端口80
来公开应用程序,因此,使用--targer-port=8080
时需要使用端口80
,但是,您还需要在创建部署时公开容器por。
基于@nischay goayl
的答案,以下命令将创建一个部署并在端口80上公开:
kubectl run mycluster --image=nginx:1.10.0 --port=80
然后,创建一个公开应用程序的服务:
kubectl expose deployment mycluster --type LoadBalancer --port 80 --target-port 80
等待EXTERANL-IP
,然后尝试访问您的应用程序。
如果您要内部测试,请使用带有curl
图片的测试窗格来访问该服务:
apiVersion: v1
kind: Pod
metadata:
name: curl
namespace: default
spec:
containers:
- name: curl
image: curlimages/curl
command:
- sleep
- "3600"
imagePullPolicy: IfNotPresent
restartPolicy: Always
然后使用命令:
kubectl exec -it curl -- curl -IL http://mycluster
响应:
HTTP/1.1 200 OK
Server: nginx/1.10.0
Date: Mon, 30 Mar 2020 09:30:07 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 26 Apr 2016 15:17:57 GMT
Connection: keep-alive
ETag: "571f86a5-264"
Accept-Ranges: bytes