首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在小型WSL2上,负载平衡器或节点不能工作,但是kubectl暴露的效果很好。

在小型WSL2上,负载平衡器或节点不能工作,但是kubectl暴露的效果很好。
EN

Stack Overflow用户
提问于 2022-09-07 05:49:51
回答 1查看 77关注 0票数 0

我在WSL2上用迷你车。我部署了一个简单的烧瓶应用程序映像,并编写了一个LoadBalancer来公开服务。

我的问题是,如何修改服务清单以获得与公开相同的结果?

下面是更多的细节。

烧瓶应用部署yaml。

rss.yaml

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: esg
spec:
  selector:
    matchLabels:
      app: rss
  replicas: 3
  template:
    metadata:
      labels:
        app: rss
    spec: 
      containers:
      - name: rss
        image: "idioluck/00esg_rss:v01"
        ports:
        - containerPort: 5000

service yaml (我也尝试过nodeport和loadbalanacer )。

rss_lb.yaml

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: esg-lb
spec:
  type: NodePort # LoadBalancer
  selector:
    app: rss  
  ports:
  - protocol: TCP
    port: 8080 
    targetPort: 5000

kubectl命令是

代码语言:javascript
复制
sjw@DESKTOP-MFPNHRC:~/esg_kube/kubesvc/rss$ kubectl apply -f rss.yaml
deployment.apps/esg created
sjw@DESKTOP-MFPNHRC:~/esg_kube/kubesvc/rss$ kubectl apply -f rss_lb.yaml
service/esg-lb created
sjw@DESKTOP-MFPNHRC:~/esg_kube/kubesvc/rss$ kubectl get pods
NAME                  READY   STATUS    RESTARTS   AGE
esg-757f659b4-4vndc   1/1     Running   0          13s
esg-757f659b4-4wd2w   1/1     Running   0          13s
esg-757f659b4-sf5q6   1/1     Running   0          13s
sjw@DESKTOP-MFPNHRC:~/esg_kube/kubesvc/rss$ kubectl get all
NAME                      READY   STATUS    RESTARTS   AGE
pod/esg-757f659b4-4vndc   1/1     Running   0          16s
pod/esg-757f659b4-4wd2w   1/1     Running   0          16s
pod/esg-757f659b4-sf5q6   1/1     Running   0          16s

NAME                 TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
service/esg-lb       LoadBalancer   10.101.221.26   <pending>     8080:31308/TCP   8s
service/kubernetes   ClusterIP      10.96.0.1       <none>        443/TCP          23h

NAME                  READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/esg   3/3     3            3           16s

NAME                            DESIRED   CURRENT   READY   AGE
replicaset.apps/esg-757f659b4   3         3         3       16s

Exteranl ip正在等待。因此,我删除了loabdbalancer,并使用了expose

代码语言:javascript
复制
sjw@DESKTOP-MFPNHRC:~/esg_kube/kubesvc/rss$ kubectl expose deployment esg --type=LoadBalancer --port=8080
service/esg exposed
sjw@DESKTOP-MFPNHRC:~/esg_kube/kubesvc/rss$ kubectl get svc
NAME         TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
esg          LoadBalancer   10.99.208.98   127.0.0.1     8080:30929/TCP   46s
kubernetes   ClusterIP      10.96.0.1      <none>        443/TCP          23h

服务已成功公开。服务是一个负载平衡器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-07 07:49:09

您的LoadBalancer类型服务将Pending显示为状态,因为它正在等待您提供外部负载均衡器,如AWS的弹性负载均衡器或GCP的负载均衡器。LoadBalancer类型服务通常与托管Kubernetes服务(例如EKS、GKE等)一起使用。

另一方面,您可以公开您的服务,因为它已经为它分配了clusterIP

如果您想在Minikube中使用LB,这个官方的文档可能会帮助您。否则,您可以直接使用NodePort类型服务来公开您的烧瓶应用程序。

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

https://stackoverflow.com/questions/73630663

复制
相关文章

相似问题

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