0

我是 Kubernetes 新手,正试图通过入口资源公开我的服务(Nginx)。入口控制器已经通过 helm nginx-stable/nginx-ingress 安装。尝试从入口资源访问所述 IP 和端口时。这是无法访问的,通过进行一些研究,我发现我需要安装 metalLB。

我的问题是我真的需要安装 MetalLB 还是有任何替代的内置资源可以配置或用于路由流量?

4

2 回答 2

0

简而言之,您不一定需要安装 metalLB 才能使简单的 kubernetes 配置工作。也许您可以共享无法访问的服务信息或错误日志

于 2020-12-15T04:47:13.007 回答
0

很抱歉由于假期而耽搁了..

我正在使用运行 3 台机器的 Virtualbox

  • Ubuntu 20.04.1 LTS

K8s版本

  • 客户端版本:v1.20.1
  • 服务器版本:v1.20.1

启用入口 helm install my-release nginx-stable/nginx-ingress

部署 kubectl describe deployment --namespace helm-exam

Name:                   node-deployment-1
Namespace:              helm-exam
CreationTimestamp:      Fri, 08 Jan 2021 12:01:22 +0800
Labels:                 app=node-deployment-1
                        app.kubernetes.io/managed-by=Helm
Annotations:            deployment.kubernetes.io/revision: 1
                        meta.helm.sh/release-name: helm-deployment
                        meta.helm.sh/release-namespace: default
Selector:               app=node-deployment-1
Replicas:               3 desired | 3 updated | 3 total | 3 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=node-deployment-1
  Containers:
   nginx:
    Image:      nginx
    Port:       <none>
    Host Port:  <none>
    Environment:
      ENVIRONMENT:  DEV
    Mounts:         <none>
  Volumes:          <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   node-deployment-1-78dd8f445b (3/3 replicas created)
Events:          <none>

服务

kubectl describe svc --namespace helm-exam

Name:              node-service-1
Namespace:         helm-exam
Labels:            app=node-service-1
                   app.kubernetes.io/managed-by=Helm
Annotations:       meta.helm.sh/release-name: helm-deployment
                   meta.helm.sh/release-namespace: default
Selector:          app=node-deployment-1
Type:              ClusterIP
IP Families:       <none>
IP:                10.109.148.140
IPs:               10.109.148.140
Port:              <unset>  80/TCP
TargetPort:        80/TCP
Endpoints:         10.244.1.26:80,10.244.1.27:80,10.244.1.28:80
Session Affinity:  None
Events:            <none>

入口

kubectl describe ingress --namespace helm-exam

Name:             node-ingress
Namespace:        helm-exam
Address:          
Default backend:  default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
  Host            Path  Backends
  ----            ----  --------
  nginx.helm.com  
                  /   node-service-1:80 (10.244.1.26:80,10.244.1.27:80,10.244.1.28:80)
Annotations:      meta.helm.sh/release-name: helm-deployment
                  meta.helm.sh/release-namespace: default
Events:           <none>

kubectl get ingress --namespace helm-exam

NAME           CLASS    HOSTS            ADDRESS   PORTS   AGE
node-ingress   <none>   nginx.helm.com             80      8m57s

Ingress 不显示或提供任何 IP 地址

于 2021-01-08T05:28:33.583 回答