我跟着 留言簿教程从 Google 上下载并创建了自己的配置文件。所以农场一切正常。现在,我想从我的 Web 服务器 Pod 中公开端口 80 和 443。我知道如何在控制器配置文件中执行此操作(见下文),但不知道如何在服务配置文件中执行此操作。请问有什么线索可以指导我吗?
这是我的控制器配置文件:
{
"id": "webservers-controller",
"kind": "ReplicationController",
"apiVersion": "v1beta1",
"desiredState": {
"replicas": 3,
"replicaSelector": {"name": "webservers"},
"podTemplate": {
"desiredState": {
"manifest": {
"version": "v1beta1",
"id": "webservers-controller",
"containers": [{
"name": "webservers",
"image":"gcr.io/myapp/webservers:latest",
"ports": [
{"name": "http-server", "containerPort": 80},
{"name": "https-server", "containerPort": 443}
]
}]
}
},
"labels": { "name": "webservers" }
}
},
"labels": {"name": "webservers"}
}
这是我的服务配置文件:
{
"id": "webservers",
"kind": "Service",
"apiVersion": "v1beta1",
"port": 80,
"containerPort": "http-server",
"selector": { "name": "webservers" },
"labels": { "name": "webservers" },
"createExternalLoadBalancer": true
}
这是我设置负载均衡器时执行的命令:
创建集群
gcloud alpha container clusters create webservers --machine-type n1-standard-2
创建控制器
gcloud alpha container kubectl create -f webservers-controller.json
创建服务(负载均衡器)
gcloud alpha container kubectl create -f webservers-service.json
打开端口 80
gcloud compute firewall-rules create webservers-node-80 --allow=tcp:80 --target-tags k8s-webservers-node
打开端口 443
gcloud compute firewall-rules create webservers-node-443 --allow=tcp:443 --target-tags k8s-webservers-node
显示 lb IP
gcloud compute forwarding-rules list
创建健康检查
gcloud compute http-health-checks create webservers-80
gcloud compute target-pools add-health-checks k8s-webservers-default-webservers --http-health-check webservers-80 --region europe-west1
你知道如何在负载均衡器上公开 443 端口吗?谢谢
答案1
这在 v1beta1 中是不可能的。要公开多个端口,您必须使用 v1beta3:
https://github.com/GoogleCloudPlatform/kubernetes/blob/master/pkg/api/v1beta3/types.go#L879
据我所知它将在 v0.15 中发布
公共关系:https://github.com/GoogleCloudPlatform/kubernetes/pull/6182