【发布时间】:2022-07-02 03:12:46
【问题描述】:
我已经使用一系列 docker 容器构建了一个进程,将快速简单的 Flutter 应用程序汇集到一个 kubernetes 集群中(这样我就可以使用集群的其余部分来运行后台工作类型进程)。我已经能够将它部署到我的 microk8s,但是如果不运行命令,我真的很难让它全部工作:
kubectl port-forward service/flutterapp 8080:8080
当我这样做时,它会运行一个交互式控制台,我可以在我的终端中看到该控制台,然后能够访问 localhost:8080 上的服务。我正在尝试将其设置为使用 localhost:80,所以我尝试使用我发现的各种不同的入口预配置(例如 istio、ha-proxy、入口),但我承认我有点一般来说,在 k8s 和网络方面是个菜鸟。到目前为止,这就是我想出的(我使用了我一直在阅读的教程之一中的虚拟图像来尝试解决这个问题)。这是我的基本 yml:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: flutterapp
name: flutterapp
spec:
replicas: 2
selector:
matchLabels:
app: flutterapp
template:
metadata:
labels:
app: flutterapp
spec:
containers:
- name: flutterapp
image: gcr.io/kuar-demo/kuard-amd64:blue
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
name: http-flutterapp
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: flutterapp
spec:
ports:
- port: 8080
protocol: TCP
targetPort: http-flutterapp
selector:
app: flutterapp
sessionAffinity: None
type: LoadBalancer
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: flutterapp
spec:
rules:
- http:
paths:
- path: /flutterapp
pathType: Prefix
backend:
service:
name: flutterapp
port:
number: 8080
我认为我在做一些愚蠢且明显错误的事情,但我为这些东西阅读的一些文章正在使用 extensions/v1beta1 或其他各种 api,我正在努力让它们保持不变。
有什么建议吗?
【问题讨论】:
标签: kubernetes kubernetes-ingress microk8s