我目前在OSK(卡塔琳娜州)上运行Docker桌面(19.03.5),运行k8s(v.14.8)
在ambassador getting started文章之后,我完成了以下操作:
创建了一个名为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> ............
我的问题是,从哪里开始进行故障排除?我不知道失败在哪里,也不知道如何开始发现问题所在。正确的方向是什么?
答案 0 :(得分:0)
基于“ Kubernetes网络模型” [1],有2条重要规则:
- 节点上的Pod可以与所有节点上的所有Pod通信,而无需NAT
- 节点上的代理(例如系统守护程序,kubelet)可以与该节点上的所有Pod通信
因此基本上可以说,由于您的K8s群集位于您的计算机上,因此您可以直接与服务ip“ 10.97.166.229”和POD IP通信。
因此,关于如何开始故障排除步骤,由于POD已启动并正在运行,因此很可能是网络错误。您可以尝试以下方法:
a)尝试直接连接到您的广告连播。您可以通过执行以下命令来获取IP:
kubectl get pod -o wide
b)获取POD的日志并搜索任何错误:
kubectl logs ambassador-74fb8f5668-2b85z
c)进入POD并检查是否可以测试POD内部的连通性。 [2]
kubectl exec -it ambassador-74fb8f5668-2b85z -- /bin/bash
[1] https://kubernetes.io/docs/concepts/cluster-administration/networking/
[2] https://kubernetes.io/docs/tasks/debug-application-cluster/get-shell-running-container/