我在WSL2上用迷你车。我部署了一个简单的烧瓶应用程序映像,并编写了一个LoadBalancer来公开服务。
我的问题是,如何修改服务清单以获得与公开相同的结果?
下面是更多的细节。
烧瓶应用部署yaml。
rss.yaml
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: 5000service yaml (我也尝试过nodeport和loadbalanacer )。
rss_lb.yaml
apiVersion: v1
kind: Service
metadata:
name: esg-lb
spec:
type: NodePort # LoadBalancer
selector:
app: rss
ports:
- protocol: TCP
port: 8080
targetPort: 5000kubectl命令是
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 16sExteranl ip正在等待。因此,我删除了loabdbalancer,并使用了expose
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服务已成功公开。服务是一个负载平衡器。
发布于 2022-09-07 07:49:09
您的LoadBalancer类型服务将Pending显示为状态,因为它正在等待您提供外部负载均衡器,如AWS的弹性负载均衡器或GCP的负载均衡器。LoadBalancer类型服务通常与托管Kubernetes服务(例如EKS、GKE等)一起使用。
另一方面,您可以公开您的服务,因为它已经为它分配了clusterIP。
如果您想在Minikube中使用LB,这个官方的文档可能会帮助您。否则,您可以直接使用NodePort类型服务来公开您的烧瓶应用程序。
https://stackoverflow.com/questions/73630663
复制相似问题