大使服务保持 "pending"

ambassador service stays "pending"

目前 运行 Ubuntu Server 20 LTS 上的全新“一体机”(堆叠 master/worker 方法)kubernetes v1.21.1-00,使用

还安装了 kubernetes-dashboard(但我想这对我的问题并不重要)。按照本指南安装大使:https://www.getambassador.io/docs/edge-stack/latest/topics/install/yaml-install/ 我遇到了服务卡在“待处理”状态的问题。

kubectl get svc -n ambassador 打印出以下内容

NAME               TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
ambassador         LoadBalancer   10.97.117.249    <pending>     80:30925/TCP,443:32259/TCP   5h
ambassador-admin   ClusterIP      10.101.161.169   <none>        8877/TCP,8005/TCP            5h
ambassador-redis   ClusterIP      10.110.32.231    <none>        6379/TCP                     5h
quote              ClusterIP      10.104.150.137   <none>        80/TCP                       5h

虽然在服务中将 typeLoadBalancer 更改为 NodePort 设置正确,但我不确定随之而来的影响。同样,我想在这里使用大使作为入口组件 - 对于我的设置(只有一台机器),可能不需要“真正的”负载平衡。

为了涵盖所有子域内容,我设置了一个通配符记录以指向我的机器,这意味着我得到了 *.k8s.my-domain.com 的 CNAME,它指向该主机。不知道,这种方法是否适合设置入口。

编辑:事件列表,如下要求:

Events:
  Type    Reason     Age   From               Message
  ----    ------     ----  ----               -------
  Normal  Scheduled  116s  default-scheduler  Successfully assigned ambassador/ambassador-redis-584cd89b45-js5nw to dev-bvpl-099
  Normal  Pulled     116s  kubelet            Container image "redis:5.0.1" already present on machine
  Normal  Created    116s  kubelet            Created container redis
  Normal  Started    116s  kubelet            Started container redis

此外,这是在 yaml 演示中挂起的服务(通过 kubectl get svc -n ambassador -o yaml ambassador 导出)

apiVersion: v1
kind: Service
metadata:
  annotations:
    a8r.io/bugs: https://github.com/datawire/ambassador/issues
    a8r.io/chat: http://a8r.io/Slack
    a8r.io/dependencies: ambassador-redis.ambassador
    a8r.io/description: The Ambassador Edge Stack goes beyond traditional API Gateways
      and Ingress Controllers with the advanced edge features needed to support developer
      self-service and full-cycle development.
    a8r.io/documentation: https://www.getambassador.io/docs/edge-stack/latest/
    a8r.io/owner: Ambassador Labs
    a8r.io/repository: github.com/datawire/ambassador
    a8r.io/support: https://www.getambassador.io/about-us/support/
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{"a8r.io/bugs":"https://github.com/datawire/ambassador/issues","a8r.io/chat":"http://a8r.io/Slack","a8r.io/dependencies":"ambassador-redis.ambassador","a8r.io/description":"The Ambassador Edge Stack goes beyond traditional API Gateways and Ingress Controllers with the advanced edge features needed to support developer self-service and full-cycle development.","a8r.io/documentation":"https://www.getambassador.io/docs/edge-stack/latest/","a8r.io/owner":"Ambassador Labs","a8r.io/repository":"github.com/datawire/ambassador","a8r.io/support":"https://www.getambassador.io/about-us/support/"},"labels":{"app.kubernetes.io/component":"ambassador-service","product":"aes"},"name":"ambassador","namespace":"ambassador"},"spec":{"ports":[{"name":"http","port":80,"targetPort":8080},{"name":"https","port":443,"targetPort":8443}],"selector":{"service":"ambassador"},"type":"LoadBalancer"}}
  creationTimestamp: "2021-05-22T07:18:23Z"
  labels:
    app.kubernetes.io/component: ambassador-service
    product: aes
  name: ambassador
  namespace: ambassador
  resourceVersion: "4986406"
  uid: 68e4582c-be6d-460c-909e-dfc0ad84ae7a
spec:
  clusterIP: 10.107.194.191
  clusterIPs:
  - 10.107.194.191
  externalTrafficPolicy: Cluster
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - name: http
    nodePort: 32542
    port: 80
    protocol: TCP
    targetPort: 8080
  - name: https
    nodePort: 32420
    port: 443
    protocol: TCP
    targetPort: 8443
  selector:
    service: ambassador
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer: {}

编辑#2:我想知道 是否也适用于我的流程?

答案就在这里:https://serverfault.com/questions/1064313/ambassador-service-stays-pending . After installing a load balancer the whole setup worked. I decided to go with metallb (https://metallb.universe.tf/installation/#installation-by-manifest 安装)。我决定为单节点 kubernetes 集群采用以下配置:

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 10.16.0.99-10.16.0.99

几秒钟后检测到负载平衡器,一切正常。