如何将简单的Hello World程序部署到本地Kubernetes集群

时间:2020-03-11 19:22:55

标签: spring-boot docker kubernetes kubernetes-helm docker-desktop

我有一个非常简单的spring-boot Hello World程序。在本地运行应用程序时,我可以导航到http://localhost:8080/并看到页面上显示的“ Hello World”问候。我还创建了一个Dockerfile并可以从中构建映像。

我的下一个目标是将其部署到本地Kubernetes集群。我已经使用Docker Desktop创建了一个本地kubernetes集群。我想为我的应用程序创建一个部署,在群集中本地托管它,然后从浏览器访问它。

我不确定从哪里开始进行此部署。我知道我将需要创建图表,但是我不知道如何最终将该图像推送到群集中。

2 个答案:

答案 0 :(得分:1)

您需要分别创建一个kubernetes deploymentservice定义。

这些定义可以采用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 nameimage 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映像和部署中所需的环境。