k8s环境部署本地.net core web项目
2021-04-11 22:26
标签:cto swapoff etc src 准备工作 pull 编写 otp 本地 上一篇文章,我们部署了docker+k8s环境,简单测试通过,但是,还没能将我们自己的项目部署上去,继续记录部署踩坑过程。 一、准备工作 1、当然是docker+k8s环境了,详情请看上一篇文档 https://www.cnblogs.com/CoderLinkf/p/12395710.html 2、如果你部署好环境,重启过,建议先kubeadm reset,重新关闭防火墙,swap重新init一下 别忘了改ip,接下来,重新安装flannel,详情请看上一篇文档安装,这里还没有找到重启后环境不变的方法,最后你得到下图结果: 同理,node节点也需要重新执行。 二、开始部署 1、首先,将项目发布到文件系统,ftp到centos系统,这步不细说了 2、DockerFile:放在项目保存的目录下 3、拉取镜像,记得cd到目录下面,dockerdemo可以改成自己的项目 4、docker images,查看镜像 5、到此,部署了master节点的镜像,接下来,同样的操作,在node节点拉取镜像(本地项目必须的) 6、做完上面的工作,我们开始编写web-pod.yaml,当然文件名不重要,重要的是.yaml内容 解释一下: name可以改, replicas参数表示工作副本,运行成功后会运行相应的pod数量在节点中 image:本地镜像名称 imagePullPolicy:因为是在本地,所以不从pull拉取镜像,Never(IfNotPresent:如果本地没有,拉取pull镜像;Always:总是从pull拉取) 其他参数就不解释了,可以了解一下https://www.bbsmax.com/A/obzbN4AyzE/ 当然了,yaml文件格式非常严格,一不小心就会验证失败,可以在https://www.json2yaml.com/convert-yaml-to-json进行验证格式 7、运行pod 如果顺利的话,执行 可以看到 这里的两个,即上面配置的replicas效果 运行kubectl get pod,svc -o wide,如果出现下图所示,状态为running 恭喜你,成功了,访问图上所示的链接http://192.168.3.180:30165/即可看到我们的网站 如果失败了,可以查看pod的日志 这里的pod名,可以通过上面的kubectl get pods来查看 更复杂的日志: k8s环境部署本地.net core web项目 标签:cto swapoff etc src 准备工作 pull 编写 otp 本地 原文地址:https://www.cnblogs.com/CoderLinkf/p/12408589.htmlsystemctl stop firewalld
setenforce 0
swapoff -a
kubeadm init --apiserver-advertise-address=192.168.3.180 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.17.3 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /dockerdemo
EXPOSE 80
COPY . .
ENTRYPOINT ["dotnet", "Application.web.dll"]
docker build -t dockerdemo .
apiVersion: apps/v1
kind: Deployment
metadata:
name: web1
labels:
k8s-app: web1
spec:
replicas: 2
selector:
matchLabels:
k8s-app: web1
template:
metadata:
labels:
k8s-app: web1
spec:
containers:
- name: web1
image: dockerdemo
imagePullPolicy: Never
ports:
- containerPort: 80
---
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: web1
name: web1
spec:
type: NodePort
ports:
- port: 80
targetPort: 80
selector:
k8s-app: web1
kubectl create -f web-pod.yaml
kubectl get pod -o wide
kubectl get pod,svc -o wide
kubectl describe pod web1-58f6d7d9b5-mlbx2
kubectl create -f web-pod.yaml