部署Dotnet Core项目Pod到K8s上的常用步骤
- Build image
docker build --tag=myLocalTag --file=src/Project/Dockerfile .
tag可以指定Repository,如 RepositoryName/myLocalTag,不指定的话就是本地机器
- 给本地image打tag
docker tag myLocalTag myLocalTag:latest
- 将image push到Repository,首先登录Repository,默认是dockerhub
docker login docker push myRepository/myLocalTag:latest
- 创建Repository Secret
kubectl create secret docker-registry regsecret --docker-username=xxx --docker-password=xxx
- 编写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
- 编写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) 编辑 收藏 举报