gpt4 book ai didi

kubernetes - 如何从 list 文件(通常是 list 文件与 kubectl run)使用 kubectl port-forward

转载 作者:行者123 更新时间:2023-12-05 02:16:22 24 4
gpt4 key购买 nike

我正在尝试在本地使用 Kubernetes(或者我应该说是 minikube)运行我的第一个应用。

我有一个非常基本的网络服务器(一个本地 docker 镜像)和官方 mongodb(我想从 dockerhub 中理想地拉取)镜像。

我不是要部署 mongodb 集群,只是让我的应用程序在本地运行的最少的东西就是一个很好的开始!

首先,我成功地使用 kubectl run <MY_APP> --image=<MY_IMAGE> --port 3030 --image-pull-policy=IfNotPresent 单独运行我的网络服务器, 然后 kubectl port-forward <MY_POD> 3030:80它工作正常,我可以从 3030 端口访问应用程序(应用程序正在监听并且容器公开端口 80)。

但我想将其转换为 list 文件以描述我需要轻松运行的所有容器。

我的第一个问题是我找不到如何 kubectl port-forward应该被翻译成 list 文件。我在想 targetPort但是我在尝试时遇到验证错误,看起来我们不能使用 targetPort在 pod 容器端口描述中。

我的第二个问题是,我不太确定我在尝试通过仅描述一个 pod 来运行该堆栈来做什么。它可能需要其他部分,service我认为我的需要是可选的吗,我不确定 deployment ,但我看到了 endpoint亲切,我可以忽略其他的...

kubectl run 以来我有点困惑似乎创建了一个 pod、一个部署和一个副本集,我不确定是否必须从我的 list 文件中创建所有这些。

我只想在本地运行我的两个容器来处理代码并在每次进行更改时刷新它并测试它。

由于我对 Kubernetes 缺乏了解,所以我的问题有一些子问题,但基本上,我想知道如何翻译我的 kubectl run <MY_APP>kubectl port-forward <MY_POD> 3030:80到 list 文件中,这样我就可以添加 mongodb 容器并使用单个 kubectl create -f ./local.yaml 启动整个堆栈命令行。

这是初稿:

apiVersion: v1
kind: Pod
metadata:
name: my_app
spec:
containers:
- name: web-server
image: my_app
imagePullPolicy: IfNotPresent
ports:
- name: my_app
containerPort: 3030
targetPort: 80
protocol: TCP
- name: mongodb
image: mongodb
ports:
- name: mongodb
containerPort: 27017
protocol: TCP

最佳答案

是的,你是对的。您可以使用 Type NodePort 将您的应用公开为服务(虽然在文档中不是很清楚),并且您的服务的 yaml 将如下所示:

apiVersion: v1
kind: Service
metadata:
name: app-service
spec:
type: NodePort
ports:
- port: 3030
targetPort: 80
selector:
app: app-server

您的部署的 yaml 将如下所示:

apiVersion: apps/v1
kind: Deployment
metadata:
name: app-server
labels:
app: app-server
spec:
selector:
matchLabels:
app: app-server
template:
metadata:
labels:
app: app-server
spec:
containers:
- name: web-server
image: my_app
ports:
- containerPort: 80
- name: mongodb
image: mongodb
ports:
- containerPort: 27017

如您所见,我只公开了您的网络服务器。现在,要从 Kubernetes 外部访问 Mongo,您还需要公开它。

您可以将应用部署为命令:

kubctl apply -f ./file_with_service.yaml ./file_with_deployment.yaml

您可以使用所有这些作为开始的示例,并阅读 more documentation清楚地了解它。

关于kubernetes - 如何从 list 文件(通常是 list 文件与 kubectl run)使用 kubectl port-forward,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50043296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com