部署Dotnet Core项目Pod到K8s上的常用步骤

  1. Build image
     docker build --tag=myLocalTag --file=src/Project/Dockerfile .

    tag可以指定Repository,如 RepositoryName/myLocalTag,不指定的话就是本地机器

  2. 给本地image打tag
    docker tag myLocalTag myLocalTag:latest

     

  3. 将image push到Repository,首先登录Repository,默认是dockerhub
    docker login
    docker push myRepository/myLocalTag:latest
    
    

     

  4. 创建Repository Secret
    kubectl create secret docker-registry regsecret   --docker-username=xxx --docker-password=xxx

     

  5. 编写pod.yaml
    apiVersion: v1
    kind: Pod
    metadata:
        name: project.web
        labels:
            app: web
    spec:
        containers:
            - name: project-web
              image: myRepository/myLocalTag:latest
              ports:
                  - containerPort: 80
        imagePullSecrets:
            - name: regsecret

    运行命令

    kubectl create -f pod.yaml

     

  6. 编写service.yaml
    kind: Service
    apiVersion: v1
    metadata:
      labels:
        app: web
      name: project-web
    spec:
      type: NodePort
      ports:
        - port: 80    #service暴露在cluster ip上的端口,<cluster ip>:port 是提供给集群内部客户访问service的入口。
          targetPort: 80 #nodePort是kubernetes提供给集群外部客户访问service入口的一种方式(另一种方式是LoadBalancer),所以,<nodeIP>:nodePort 是提供给集群外部客户访问service的入口。
          nodePort: 30000 #targetPort是pod上的端口,从port和nodePort上到来的数据最终经过kube-proxy流入到后端pod的targetPort上进入容器。
      selector:
        app: web
    #kind: Service
    #apiVersion: v1
    #metadata:
    #  labels:
    #    app: web
    #  name: project-web-loadbalancer
    #spec:
    #  type: LoadBalancer
    #  ports:

    运行命令

    kubectl create -f service.yaml

posted on 2019-03-15 10:39  leonworld2011  阅读(441)  评论(0编辑  收藏  举报

导航