k8s使用YAML文件部署项目

如何使用kubectl create deployment拉取并且要外部能访问这个镜像docker run -d –name=maxkb -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data 1panel/maxkb

要使用kubectl创建一个部署来拉取并在 Kubernetes 上运行一个镜像,并确保外部能够访问该镜像,你需要执行以下步骤:

  1. 编写 Deployment YAML 文件:首先,你需要编写一个 Deployment 的 YAML 文件来描述你的应用程序的配置。以下是一个简单的示例:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: maxkb-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: maxkb
  template:
    metadata:
      labels:
        app: maxkb
    spec:
      containers:
      - name: maxkb
        image: 1panel/maxkb
        ports:
        - containerPort: 8080
        volumeMounts:
        - name: maxkb-data
          mountPath: /var/lib/postgresql/data
      volumes:
      - name: maxkb-data
        hostPath:
          path: /root/.maxkb
  1. 应用 Deployment 文件:将上述 YAML 内容保存到一个文件中,例如 maxkb-deployment.yaml,然后使用 kubectl 应用它:
kubectl apply -f maxkb-deployment.yaml
  1. 暴露服务:要确保外部能够访问该镜像,你需要将该服务暴露出去。你可以使用 Service 来做到这一点。以下是一个简单的 Service YAML 示例:
apiVersion: v1
kind: Service
metadata:
  name: maxkb-service
spec:
  selector:
    app: maxkb
  ports:
    - protocol: TCP
      port: 8080
      targetPort: 8080
  type: NodePort
  1. 应用 Service 文件:将上述 YAML 内容保存到一个文件中,例如 maxkb-service.yaml,然后使用 kubectl 应用它:
kubectl apply -f maxkb-service.yaml

现在,你的镜像应该在 Kubernetes 上运行,并且通过 NodePort 方式暴露给外部访问。你可以使用 kubectl get services 命令来查看服务的端口,然后通过 <NodeIP>:<NodePort> 访问你的应用程序。

显示该 Pod 的详细信息,包括所在的节点

kubectl describe pod maxkb-deployment-5845fc54c6-kvvtp

查看 Service 的详细信息

kubectl get service maxkb-service
© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容