首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >k8s大使入口样本不工作

k8s大使入口样本不工作
EN

Stack Overflow用户
提问于 2019-12-03 19:36:27
回答 1查看 343关注 0票数 0

我目前在OSX (Catalina)上使用Desktop (19.03.5)运行k8s (v.14.8)。

大使开始文章之后,我做了以下工作:

创建了一个名为ambassador-ingress.yaml的文件

代码语言:javascript
复制
---
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

我运行了以下命令

代码语言:javascript
复制
$ kubectl apply -f https://www.getambassador.io/yaml/ambassador/ambassador-rbac.yaml
$ kubectl apply -f ambassador-ingress.yaml

我现在可以看看kubectl get podskubectl get service

代码语言:javascript
复制
$ 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
代码语言:javascript
复制
$ 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:

代码语言:javascript
复制
$ curl localhost/google/
> curl: (52) Empty reply from server
$ curl www.google.com
> <!doctype html> ............

我的问题是,我从哪里开始疑难解答?我不知道失败在哪里,也不知道如何开始挖掘,找出哪里出了问题。正确的方向是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-03 21:48:41

基于“Kubernetes网络模型”1,有两个重要的规则:

  • 节点上的豆荚可以在没有NAT的情况下与所有节点上的所有豆荚通信。
  • 节点上的代理(例如系统守护进程、kubelet)可以与该节点上的所有豆荚通信。

因此,它基本上是说,由于您的K8s集群位于您的计算机上,所以您可以直接与服务IP "10.97.166.229“和POD通信。

因此,关于如何开始您的故障排除步骤,由于您的吊舱已经启动并正在运行,这很可能是网络错误。你可以试试这个:

( a)试着直接连接到你的吊舱。您可以通过执行以下命令获得IP:

代码语言:javascript
复制
kubectl get pod -o wide

b)获取POD的日志并搜索任何错误:

代码语言:javascript
复制
kubectl logs ambassador-74fb8f5668-2b85z

( c)进入POD内部,检查是否可以测试POD内部的连接性。2

代码语言:javascript
复制
kubectl exec -it ambassador-74fb8f5668-2b85z -- /bin/bash

1

2

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59164213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档