chr*_*ian 5 amazon-web-services amazon-elb kubernetes amazon-eks
我在 aws 上创建了一个简单的EKS集群,如https://github.com/terraform-providers/terraform-provider-aws/tree/master/examples/eks-getting-started中所述。
\n\n在这个集群中,我创建了一个nginx 部署和一个Loadbalancer类型的服务,如下所述。\n该配置在 minikube 上本地运行。
\n\n在 AWS 上,我可以看到 pod 和服务已启动,该服务具有外部 IP,我可以使用 kubectl port-forward 访问 pod,并且可以 ping LoadBalancer。
\n\n但是,我无法通过浏览器通过http://a53439687c6d511e8837b02b7cab13e7-935938560.eu-west-1.elb.amazonaws.com:3001
访问负载均衡器\n我\This site can\xe2\x80\x99t be reached
知道我应该去哪里调查吗?
\n\nNGinx 部署
\n\napiVersion: extensions/v1beta1\nkind: Deployment\nmetadata:\n annotations:\n deployment.kubernetes.io/revision: "1"\n labels:\n run: nginx\n name: nginx\n namespace: default\nspec:\n progressDeadlineSeconds: 600\n replicas: 1\n revisionHistoryLimit: 2\n selector:\n matchLabels:\n run: nginx\n template:\n metadata:\n creationTimestamp: null\n labels:\n run: nginx\n spec:\n containers:\n - image: nginx\n imagePullPolicy: Always\n name: nginx\n ports:\n - containerPort: 80\n dnsPolicy: ClusterFirst\n restartPolicy: Always\n schedulerName: default-scheduler\n securityContext: {}\n terminationGracePeriodSeconds: 30\nRun Code Online (Sandbox Code Playgroud)\n\nNGinx 服务
\n\n{\n "kind":"Service",\n "apiVersion":"v1",\n "metadata":{\n "name":"nginx",\n "labels":{\n "app":"nginx"\n }\n },\n "spec":{\n "ports": [\n {\n "port":3001,\n "targetPort":80\n }\n ],\n "selector":{\n "run":"nginx"\n },\n "type": "LoadBalancer"\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n支票
\n\nkubectl get svc\nNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE\nkubernetes ClusterIP 172.20.0.1 <none> 443/TCP 1h\nnginx LoadBalancer 172.20.48.112 a53439687c6d511e8837b02b7cab13e7-935938560.eu-west-1.elb.amazonaws.com 3001:31468/TCP 45m\n\nkubectl get pod\nNAME READY STATUS RESTARTS AGE\nnginx-768979984b-vqz94 1/1 Running 0 49m\n\nkubectl port-forward pod/nginx-768979984b-vqz94 8080:80\nForwarding from 127.0.0.1:8080 -> 80\nForwarding from [::1]:8080 -> 80\n\nping a53439687c6d511e8837b02b7cab13e7-935938560.eu-west-1.elb.amazonaws.com\nPING a53439687c6d511e8837b02b7cab13e7-935938560.eu-west-1.elb.amazonaws.com (62.138.238.45) 56(84) bytes of data.\n64 bytes from 62.138.238.45 (62.138.238.45): icmp_seq=1 ttl=250 time=7.21 ms\nRun Code Online (Sandbox Code Playgroud)\n\n服务说明
\n\nName: nginx\nNamespace: default\nLabels: app=nginx\nAnnotations: kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app":"nginx"},"name":"nginx","namespace":"default"},"spec":{"ports":[{"port...\nSelector: run=nginx\nType: LoadBalancer\nIP: 172.20.48.112\nLoadBalancer Ingress: a53439687c6d511e8837b02b7cab13e7-935938560.eu-west-1.elb.amazonaws.com\nPort: <unset> 3001/TCP\nTargetPort: 80/TCP\nNodePort: <unset> 31468/TCP\nEndpoints: 10.0.0.181:80\nSession Affinity: None\nExternal Traffic Policy: Cluster\nEvents:\n Type Reason Age From Message\n ---- ------ ---- ---- -------\n Normal EnsuringLoadBalancer 57m service-controller Ensuring load balancer\n Normal EnsuredLoadBalancer 57m service-controller Ensured load balancer\nRun Code Online (Sandbox Code Playgroud)\n
请尝试以下 3 个步骤:
再次检查服务和部署之间的选择器和标签是否设置正确。
在AWS内部,转到创建的负载均衡器(可能是经典)的“ Instances ”选项卡,然后检查与LB相关的所有实例的Status和Healty状态:
如果状态不是“InService”或状态不是“Healthy” - 检查这些实例的安全组:
NodePort(在您的情况下为 31468)应该打开以接受流量。
kubectl logs <pod-name>。| 归档时间: |
|
| 查看次数: |
4897 次 |
| 最近记录: |