我一直在观看教程视频,并试图了解如何构建一个小型的简约应用程序。我跟踪的视频是从注册表中提取容器,而我现在正在尝试在本地测试,构建和部署所有内容。这是我的设置。
我已经安装了在Mac OS上启用了Kubernetes的最新docker。
使用Docker和Docker Compose运行的helloworld NodeJS应用程序
TODO:我希望能够启动我的实例,比方说kubernetes集群中的3
Docker文件
FROM node:alpine
COPY package.json package.json
RUN npm install
COPY . .
CMD ["npm", "start"]
docker-compose.yml
version: '3'
services:
user:
container_name: users
build:
context: ./user
dockerfile: Dockerfile
在本教程的帮助下创建部署文件,由于我要合并来自youtube和Web链接的信息,因此可能会有问题。
创建一个能够启动并运行的yml文件,将在以后研究就绪和活跃性等其他方面。
apiVersion: v1
kind: Service
metadata:
name: user
spec:
selector:
app: user
ports:
- port: 8080
type: NodePort
请检查以上yml文件的正确性,所以问题是我下一步该怎么做?
遗憾的是,您提供的代码片段不足,但您已具备基本知识。
我为您准备了一个Google教程,很遗憾,没有明显的问题。那并不意味着没有一个,只是我没有找到它。
您有正确的想法,并且有很多技术水平需要理解,但是,我赞扬您的方法,并认为我们可以帮助您实现目标。
https://nodejs.org/en/docs/guides/getting-started-guide/
https://nodejs.org/de/docs/guides/nodejs-docker-webapp/
对于下面的#3,这里的最后一步是:
docker build --tag=<your username>/node-web-app .
但是,由于您使用的是Kubernetes,因此您需要将此图像推送到公共存储库中。这样,无论群集在何处运行,它都将能够访问容器映像。
由于该示例使用DockerHub,让我们继续使用它:
docker push <your username>/node-web-app
NB还有一个隐含https://docker.io/<your username>/node-web-app:latest
在这里
然后,您将需要一个Kubernetes集群,您可以在其中部署应用程序
我的建议是(除了microk8s和minikube之外)不要运行自己的Kubernetes集群。留给云提供商。
kubectl run yourapp \
--image=<your username>/node-web-app:latest \
--port=8080 \
--replicas=1
kubectl run
不推荐使用IIRC ,但仍要使用它。它将使用1个Pod(==副本)为您创建Kubernetes部署(!)。--replicas=2
如果需要,可以随意调整该值(也许)。
创建展开后,您将需要创建一个服务来使您的应用程序可以访问(在我的头上),该命令是:
kubectl expose deployment/yourapp --type=NodePort
现在,您可以查询服务:
kubectl get services/yourapp
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
yourapp NodePort 10.152.183.27 <none> 80:32261/TCP 7s
注意(在这种情况下!)分配的NodePort是:32261
,因此我可以使用curl http://localhost:32261
(本地主机,因为我使用的是microk8s)与应用程序进行交互。
kubectl
是强大的。确定NodePort的另一种方法是:
kubectl get service/yourapp \
--output=jsonpath="{.spec.ports[0].nodePort}"
从头开始的方法的优点kubectl run
是,您可以通过以下方式轻松确定重新创建此Deployment | Service所需的Kubernetes配置:
kubectl get deployment/yourapp \
--format=yaml \
> ./yourapp.deployment.yaml
kubectl get service/yourapp \
--format=yaml \
> ./yourapp.service.yaml
这些命令将询问群集,为您检索配置并将其泵入文件。它还将包含一些实例数据,但其要旨向您显示重新创建部署所需的内容。您将需要编辑此文件。
但是,您可以通过以下方法进行测试:首先删除部署和服务,然后从配置中重新创建它:
kubectl delete deployment/yourapp
kubectl delete service/yourapp
kubectl apply --filename=./yourapp.deployment.yaml
kubectl apply --filename=./yourapp.service.yaml
注意:您经常会看到多个资源配置合并到一个YAML文件中。这是完全有效的YAML,但您只会看到Kubernetes使用它。格式为:
...
some: yaml
---
...
some: yaml
---
使用此功能,您可以将yourapp.deployment.yaml
和yourapp.service.yaml
合并为单个Kubernetes配置。
HTH!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句