我有一个非常简单的spring-boot Hello World程序。在本地运行应用程序时,我可以导航到http://localhost:8080/并看到页面上显示的“ Hello World”问候。我还创建了一个Dockerfile并可以从中构建映像。
我的下一个目标是将其部署到本地Kubernetes集群。我已经使用Docker Desktop创建了一个本地kubernetes集群。我想为我的应用程序创建一个部署,在群集中本地托管它,然后从浏览器访问它。
我不确定从哪里开始进行此部署。我知道我将需要创建图表,但是我不知道如何最终将该图像推送到群集中。
答案 0 :(得分:1)
您需要分别创建一个kubernetes deployment
和service
定义。
这些定义可以采用json或yaml格式。这是示例定义,您可以将这些定义用作部署的模板。
apiVersion: apps/v1
kind: Deployment
metadata:
name: your-very-first-deployment
labels:
app: first-deployment
spec:
replicas: 1
selector:
matchLabels:
app: first-deployment
template:
metadata:
labels:
app: first-deployment
spec:
containers:
- name: your-app
image: your-image:with-version
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: your-service
spec:
type: NodePort
ports:
- port: 80
nodePort: 30180
targetPort: 8080
selector:
app: first-deployment
不要忘记使用您的image name
和image version
更新部署Yaml中的映像行。替换之后,使用例如deployment.yaml
的名称保存此文件,然后使用apply
命令kubectl apply -f deployment.yml
保存此定义。
请注意,您需要使用port 30180
来访问您的应用程序,因为它在service
定义中以nodePort
值的形式声明。 (http://localhost:30180)
链接:
Kubernetes服务:https://kubernetes.io/docs/concepts/services-networking/service/
Kubernetes部署:https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
答案 1 :(得分:0)
您需要先定义部署才能开始,定义docker映像和部署中所需的环境。