
OKD 部署.netcore项目
创建.netcore测试项目(Webapp)
dotnet --version
dotnet new webApp -o myWebApp --no-https
dotnet run
cd myWebApp
dotnet run
Ctrl+c停止运行后,发布该项目
# 发布时项目框架版本(-f)可查看:https://docs.microsoft.com/zh-cn/dotnet/standard/frameworks
dotnet publish myWebApp -f netcoreapp3.1 -c Release
在OKD中创建项目
使用aidasi用户创建mywebapp项目空间。
oc login -u aidasi -p aidasi
oc new-project mywebapp
# 查看当前命名空间
oc whoami --show-context
添加镜像流
先添加dotnet 镜像流。在下列链接中找到okd部署的系统所对应的dotnet的镜像流:
https://github1s.com/redhat-developer/s2i-dotnetcore/blob/master/dotnet_imagestreams_centos.json
下载下来后进行安装
这里我们就添加到当前项目(mynetcore)中,所以我图中多了一个openshift是错的,请按下面命令执行
# 安装
oc create -f dotnet_imagestreams_centos.json
# 查看dotnet 版本
oc get is dotnet --template='{{range .spec.tags}}{{.name}}{{"\n"}}{{end}}'
我们看到有关很多.net的环境镜像流。
接着我们需要将其镜像上传到我们私有镜像库中。
搭建私有库请参考:https://www.tnblog.net/hb/article/details/6291
我们在harbor界面上看看有没有这个mynetcore项目,没有是需要进行创建项目的。
这里我们只需要dotnet3.1的镜像即可。可以安装上图底部进行安装。
docker pull registry.centos.org/dotnet/dotnet-31-centos7:latest
docker tag registry.centos.org/dotnet/dotnet-31-centos7:latest 10.211.55.8:8060/mynetcore/dotnet:3.1
docker push 10.211.55.8:8060/mynetcore/dotnet:3.1
在构建的过程中,我们可能需要build的服务去进行构建。所以我们需要为build服务添加我们的docker登录
# 复制该文件到当前目录下
cp ~/.docker/config.json k8s-docker.json
# 添加到全局secret
oc create secret generic harborkey --from-file=.dockerconfigjson=./k8s-docker.json --type=kubernetes.io/dockerconfigjson
# 为builder账户添加拉取与上传的登陆secret
oc secrets link builder harborkey --for=pull,mount
最后来看看界面上,builder是不是首先使用harborkey为顺序
这里secrets必须以harborkey为第一位哦,因为其他secret有harbor登录的账号与密码的话,那可能就使用前者而不使用我们现在创建的。
构建、部署与访问
创建一个构建配置。我们将使用包含.net5 SDK和运行时的dotnet3.1镜像。实用二进制内容构建应用程序
./oc new-build --name=my-web-app dotnet:3.1 --binary=true
指定刚刚发布的mywebtest项目目录路径进行构建。
./oc start-build my-web-app --from-dir=/Users/hebo/myfile/cshrp/test/myWebApp/bin/Release/netcoreapp3
.1/publish
我们可以打开另外一个窗口,查看构建过程与构建日志
# 获取所有构建
oc get bc -n mywebapp
# 获取构建日志
oc logs -f bc/my-web-app -n mywebapp
我们可以看到已经构建成功了
这是一些日志信息
接着查看我们my-web-app
的镜像流。
oc get is -n mynetcore
部署创建应用
oc new-app --docker-image=10.211.55.8:8060/mynetcore/my-web-app --name=my-web-app
接着创建路由方便我们访问
oc expose svc/my-web-app
# 查看路由
oc get route
点开我们右下角链接,很尴尬
我们通过代理进行访问
# 在本地运行
kubectl proxy --address='0.0.0.0' --accept-hosts='^*$' --port=8009
访问地址:http://127.0.0.1:8009/api/v1/namespaces/mynetcore/services/my-web-app:8080/proxy/
关于kubectl proxy请参考:https://www.tnblog.net/hb/article/details/4681
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

