我目前在OSX (Catalina)上使用Desktop (19.03.5)运行k8s (v.14.8)。
在大使开始文章之后,我做了以下工作:
创建了一个名为ambassador-ingress.yaml的文件
---
apiVersion: v1
kind: Service
metadata:
labels:
service: ambassador
name: ambassador
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 80
selector:
service: ambassador
---
apiVersion: v1
kind: Service
metadata:
name: google
annotations:
getambassador.io/config: |
---
apiVersion: ambassador/v0
kind: Mapping
name: google_mapping
prefix: /google/
service: https://google.com:443
host_rewrite: www.google.com
spec:
type: ClusterIP
clusterIP: None我运行了以下命令
$ kubectl apply -f https://www.getambassador.io/yaml/ambassador/ambassador-rbac.yaml
$ kubectl apply -f ambassador-ingress.yaml我现在可以看看kubectl get pods和kubectl get service了
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
ambassador-74fb8f5668-2b85z 1/1 Running 0 20m
ambassador-74fb8f5668-r6jrf 1/1 Running 0 20m
ambassador-74fb8f5668-vrmjg 1/1 Running 0 20m$ kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ambassador LoadBalancer 10.97.166.229 localhost 80:31327/TCP 18m
ambassador-admin NodePort 10.96.1.56 <none> 8877:30080/TCP 18m
google ClusterIP None <none> <none> 18m
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 13d然而,一切看起来都是正确的,但是,每当我试图卷曲k8s时,我只能得到一个空的服务器响应,尽管我可以直接访问google:
$ curl localhost/google/
> curl: (52) Empty reply from server
$ curl www.google.com
> <!doctype html> ............我的问题是,我从哪里开始疑难解答?我不知道失败在哪里,也不知道如何开始挖掘,找出哪里出了问题。正确的方向是什么?
发布于 2019-12-03 21:48:41
基于“Kubernetes网络模型”1,有两个重要的规则:
因此,它基本上是说,由于您的K8s集群位于您的计算机上,所以您可以直接与服务IP "10.97.166.229“和POD通信。
因此,关于如何开始您的故障排除步骤,由于您的吊舱已经启动并正在运行,这很可能是网络错误。你可以试试这个:
( a)试着直接连接到你的吊舱。您可以通过执行以下命令获得IP:
kubectl get pod -o wideb)获取POD的日志并搜索任何错误:
kubectl logs ambassador-74fb8f5668-2b85z( c)进入POD内部,检查是否可以测试POD内部的连接性。2
kubectl exec -it ambassador-74fb8f5668-2b85z -- /bin/bashhttps://stackoverflow.com/questions/59164213
复制相似问题