当前位置: 首页 > news >正文

网站上传大马后怎么做网站开发从哪开始学

网站上传大马后怎么做,网站开发从哪开始学,现在pc网站的标准一般是做多大,群晖wordpress php 7.0部署规划 概述 项目开发好后#xff0c;我们需要部署#xff0c;我们接下来就基于 阿里云云效 阿里云容器镜像服务 k8s 搭建部署环境 阿里云云效 : 放代码#xff0c;可以做cicd#xff08;https://www.aliyun.com/product/yunxiao#xff09; 阿里云容器镜像服务 :…部署规划 概述 项目开发好后我们需要部署我们接下来就基于 阿里云云效 阿里云容器镜像服务 k8s 搭建部署环境 阿里云云效 : 放代码可以做cicdhttps://www.aliyun.com/product/yunxiao 阿里云容器镜像服务 : 镜像仓库https://cr.console.aliyun.com/cn-guangzhou/instances k8s : 运行服务 我们只在k8s内部运行服务至于中间件(mysql、redis、es等)就会部署在k8s之外如果你是线上使用云服务可以直接使用云服务如果自建也最好运行在k8s之外。这里主要演示如何部署go-zero服务到k8s中 k8s部署参考上一篇【centos7.9 搭建k8s】再不行就去买个按时付费的云服务k8s 所以我们需要配置如下 服务器名称作用Ipk8s集群k8s集群运行服务服务器A中间件部署nginx、mysql、redis、es等等,k8s内部连接到此服务器服务器B 项目 项目参考go-zero-looklookhttps://github.com/Mikaelemmmm/go-zero-looklook或者自己参考go-zero-looklook自己写个简单的版项目。 云效使用 查看官网文档快速入门https://help.aliyun.com/document_detail/153762.html? 创建项目配置ssh公钥上传项目配置流水线 阿里云容器镜像服务 查看官网文档使用https://help.aliyun.com/zh/acr/user-guide/container-registry-personal-instance-edition-documentations/?spma2c4g.11186623.0.0.5ac1285d1C30XT 使用个人版 创建命名空间创建镜像仓库仓库里面有操作指南登录、拉取镜像、推送镜像等 k8s部署 参考上一篇【centos7.9 搭建k8s】 发布服务到k8s 以上把我们需要用到云效、容器镜像服务、k8s准备好了现在来编写云效流水线将我们的服务通过云效完整的发布到k8s中。 部署中间件 将nginx、mysql、redis、es等部署到k8s之外用作线上独立环境至于你想把某些中间件部署到k8s内部这个自行处理本次重点是如何将go-zero开发的微服务部署到k8s集群内部这里我就直接使用项目下的docker-compose-env.yaml了把所有依赖的第三方中间件环境直接安装在服务器B这台服务器前提是这台服务器已经安装好docker、docker-compose。 登陆到 服务器B cd /usr/local/src/ mkdir data cd data vim docker-compose.yml docker-compose up -d docker-compose ps #查看确认es占用资源比较大一开始不需要可以先停了。filebeat日志收集也一样这个比较占用磁盘空间。 独立配置 将每个服务的配置都独立出来统一放在一个仓库这样只给一个人线上仓库的权限如果线上配置有变直接修改这个仓库的文件在云效做cd的时候会先拉取代码在拉取对应服务的配置自动构建具体可以看后面的pipline。 【问】为什么不用配置中心 1修改db、redis等需要重启服务但是有一些配置又不需要重启服务运维有要去记记混了比较容易造成线上事故 2方便回滚。我们发新版本到线上并且又改了新版本配置。这时候线上用户反馈有问题线上需要快速回滚的话如果我们使用将文件构建到镜像中直接使用k8s一行命令就可以将上一个版本代码加配置直接回滚回来。如果使用了配置中心回滚了代码还要将上个版本的配置去配置中心改回来很麻烦 独立线上仓库目录结构如下这个结构是跟pipline中写法相关的 仓库地址 https://github.com/Mikaelemmmm/go-zero-looklook-pro-conf , 直接下载就好 【注】1、修改配置中的中间件数据库、redis等都要改成服务器B这台机器的IP我们这台机器是线上环境的中间件。 2、另外一个就是我们的服务发现线上我们部署在k8s中go-zero直接支持k8s服务发现所以不需要etcd等我们在配置zrpc client的时候要改成targetk8s的配置方式。 3因为在云效流水线上面我们需要使用到goctl所以需要把goctl一起上传到配置仓库里面 官网下载地址https://go-zero.dev/docs/tasks/installation/goctl 下载解压只需要上传goctl文件 4)因为在云效流水线上我们需要知道对应服务的端口号所以需要把port.sh一起上传到配置仓库里面 port.sh内容如下 #!/bin/shcase $1 in identity-api) echo 1001 ;; identity-rpc) echo 1101 ;; usercenter-api) echo 1002 ;; usercenter-rpc) echo 1102 ;; message-mq) echo 1207 ;; mqueue-rpc) echo 1106 ;; order-api) echo 1004 ;; order-mq) echo 1204 ;; order-rpc) echo 1104 ;; payment-api) echo 1005 ;; payment-rpc) echo 1105 ;; travel-api) echo 1003 ;; travel-rpc) echo 1103 esac最终独立线上仓库目录结构如下 1、goctl版本需要1.3.3。 2、在Windows下上传需要注意goctl和port.sh文件权限问题。 编写云效的pipline k8s配置 配置服务发现 创建looklook项目的命名空间 kubectl create namespace go-zero-looklook【注】非常重要 1、构建优化pipline中使用goctl kube xxx生k8s yaml的时候我们是使用k8s方式部署不需要etcd但是这种方式部署需要为生成的k8s yaml中指定serviceAccount。 原理可以看这篇文章下方go-zero的k8s服务发现讲解 https://mp.weixin.qq.com/s/-WaWJaM_ePEQOf7ExNJe7w 我这边已经指定好了serviceAccount find-endpoints 所以你需要在你的k8s创建find-endpoints这个serviceAccount并绑定相应权限yaml文件我已经准备好了你只需要执行 kubectl apply -f auth.yaml 即可 auth.yaml文件如下 #创建账号 apiVersion: v1 kind: ServiceAccount metadata:namespace: go-zero-looklookname: find-endpoints--- #创建角色对应操作 apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata:name: discov-endpoints rules: - apiGroups: []resources: [endpoints]verbs: [get,list,watch]--- #给账号绑定角色 apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata:name: find-endpoints-discov-endpoints roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: discov-endpoints subjects: - kind: ServiceAccountname: find-endpointsnamespace: go-zero-looklook配置好后pipline生成k8s yaml的文件可以在生成时候指定serviceAccount也就是说pipline中可以直接指定-serviceAcount 直接就在生成k8s的yaml中添加serviceAccount : find-endpoints如下命令 ./goctl kube deploy -secret docker-login -replicas 2 -nodePort 3${port} -requestCpu 200 -requestMem 50 -limitCpu 300 -limitMem 100 -name ${JOB_NAME}-${type} -namespace go-zero-looklook -image ${docker_repo}/${image} -o ${deployYaml} -port ${port} --serviceAccount find-endpoints配置k8s拉取私有仓库镜像 k8s在默认情况下不能拉取我们镜像服务的私有仓库镜像如果拉取私有仓库镜像则是会报 ErrImagePull 和 ImagePullBackOff 的错误 1、先在服务器A(k8s部署机)登陆阿里云镜像 $ docker login --username*** registry.cn-guangzhou.aliyuncs.com $ Username: admin $ Password: Login Succeeded2、在k8s中生成登陆harbor配置文件 #查看上一步登陆harbor生成的凭证 $ cat /root/.docker/config.json {auths: {registry.cn-guangzhou.aliyuncs.com: {auth: 6KaD5pe25qOuOnFp123zMTIzLg}} }3、对秘钥文件进行base64加密 $ cat /root/.docker/config.json | base64 -w 0ewoJImF1dGhzIjogewoJCSIxOTIuMTY4LjEuMTgwOjgwNzciOiB7CgkJCSJhdXRoIjogIllXUnRhVzQ2U0dGeVltOXlNVEl6TkRVPSIKCQl9Cgl9Cn04、创建docker-secret.yaml apiVersion: v1 kind: Secret metadata:name: docker-login type: kubernetes.io/dockerconfigjson data:.dockerconfigjson: xxxxxxxxxxxxxxxx$ kubectl create -f docker-secret.yaml -n go-zero-looklooksecret docker-login created云效k8s连接 参考文档https://help.aliyun.com/document_detail/202419.html 登录到云效进入项目里面进入云效Kubernetes 集群管理页面(https://flow.aliyun.com/setting/kubernetes-manage)新建Kubernetes 集群 连接服务器A获取k8s配置信息并复制到阿里云中导入K8S集群 $ cat /etc/rancher/k3s/k3s.yaml ---------------- apiVersion: v1 clusters: - cluster:certificate-authority-data: xxxxxxxxxserver: https://127.0.0.1:6443name: default contexts: - context:cluster: defaultuser: defaultname: default current-context: default kind: Config preferences: {} users: - name: defaultuser:client-certificate-data: xxxxxclient-key-data: xxxxxxx注意在阿里云上把其中的IP改成公网IP:server: https://127.0.0.1:6443 - server: https://公网IP:6443 云效添加服务连接 登录到云效进入项目里面进入云效服务连接管理页面(https://flow.aliyun.com/setting/service-connection)新建服务连接 容器镜像服务连接 按照下图操作阿里云容器镜像服务授权即可 云效代码服务连接 按照下图操作云效服务授权即可 创建流水线 登录到云效进入项目里面 我们先创建usercenter用户服务的流水线如下图 1、修改流水线名称 配置变量和缓存 SERVICE_NAME: 发布的服务名称DOCKER_REGISTRY容器服务注册地址命名空间type: 运行时选择发布服务的类型rpc、api、mq 2、添加流水线源 添加流水线源-代码源选择云效-添加云效服务连接-选择代码仓库和分支 项目仓库和配置仓库都添加进来 工作目录和仓库名保持一致。上面截图错误了请注意。或者自行修改命令行涉及到的工作目录 3、编辑单元测试 编辑单元测试-流水线源选择配置仓库 删除原来的步骤-添加新步骤 添加执行命令 chmod x goctl ./goctl -v4、编辑镜像构建 删除原来的步骤-添加新步骤-构建-执行命令类型 4.1 拷贝服务配置文件 yes | cp -rf /root/workspace/looklook-pro-conf/${SERVICE_NAME}/${type}/${SERVICE_NAME}.yaml app/${SERVICE_NAME}/cmd/${type}/etc4.2 goctl创建Dockerfile chmod x /root/workspace/looklook-pro-conf/goctl cd app/${SERVICE_NAME}/cmd/${type} /root/workspace/looklook-pro-conf/goctl docker -go ${SERVICE_NAME}.go ls -l cat Dockerfile4.3 复制Dockerfile到项目根目录 cp app/${SERVICE_NAME}/cmd/${type}/Dockerfile ./ ls -l4.4 镜像构建并推送至阿里云镜像仓库个人版 添加步骤-构建-镜像构建并推送至阿里云镜像仓库个人版类型 连接服务容器镜像服务连接地域看自己地方选仓库现在直接输入因为涉及到变量 registry.cn-guangzhou.aliyuncs.com/镜像命名空间/${SERVICE_NAME}-${type}标签 镜像的标签 ${CI_COMMIT_ID_1}-${CI_COMMIT_ID_2}5、添加新任务k8s发布 5.1 删除原有yaml文件 添加新步骤-构建-执行命令类型 rm -f ${DEPLOY_YAML} # 变量 DEPLOY_YAML ${SERVICE_NAME}-${type}-deploy.yaml5.2 创建K8S YAML chmod x ./goctl chmod x ./ports.sh export port$(./ports.sh ${SERVICE_NAME}-${type}) ./goctl kube deploy -secret docker-login -replicas 2 -minReplicas 1 -maxReplicas 3 -nodePort 3${port} -requestCpu 200 -requestMem 50 -limitCpu 300 -limitMem 100 -name ${SERVICE_NAME}-${type} -namespace go-zero-looklook -image ${IMAGE_NAME} -o ${DEPLOY_YAML} -port ${port} -serviceAccount find-endpoints cat ${DEPLOY_YAML}# 变量 IMAGE_NAME ${DOCKER_REGISTRY}/${SERVICE_NAME}-${type}:${CI_COMMIT_ID_1}-${CI_COMMIT_ID_2} # 变量 DEPLOY_YAML ${SERVICE_NAME}-${type}-deploy.yaml5.3、发布k8s 把默认的步骤拉到最后面 集群连接选择我添加的k8s连接Kubectl版本选择和部署一直或者相近的版本不同可能有兼容问题命名空间上面k8s配置的时候我们有为项目创建命名空间YAML路径 6、配置完成 运行测试 1、先运行RPC再运行API 2、构建完成 3、查看构建推送到容器服务的镜像 4、查看服务器Ak8s部署的节点 kubectl get pods -n go-zero-looklook //查看节点kubectl describe pod usercenter-api-cc7959b84-fk4p6 -n go-zero-looklook //查看节点详细信息kubectl logs usercenter-api-cc7959b84-fk4p6 -n go-zero-looklook//查看节点日志问题 1、Pod状态一直 ErrImagePull / ImagePullBackOff 排查kubectl describe、kubectl log查看日志排查到原因是无法下载镜像 解决阿里云镜像仓库提供公网、私网的地址yaml文件中填写私网仓库地址无法拉取到镜像需要改为公网 2、pod一直重启(RESTARTS一直往上增加) 排查 kubectl describe、kubectl log查看日志。直接在服务器运行镜像访问接口查看报错信息(需要把链接RPC模式改成直连) docker images docker run -p 1004:1004 5cb981c83a2b排查到的原因代码错误 解决修正代码 3、端口访问错误 ./goctl kube deploy -secret docker-login -… 3 -nodePort 32004 … -port 2004 -serviceAccount find-endpoints 在pod里面监听的是2004端口(-port 2004),对外暴露是32004端口(-nodePort 32004) 4、目前Prometheus是监控不到的真正线上环境自行研究或者直接买个按时付费的云服务k8s
http://www.hkea.cn/news/14296297/

相关文章:

  • 网站建设一站式服务怎么免费建公司网站
  • 网站服务器和网站备案吗企业简介模板范文
  • 哈尔滨网站建设价格移动网站怎么建设
  • 新乡网站建设方案wordpress完美商城
  • 新手搭建做网站瀑布流 网站 php 源码
  • 深圳国内网站制作哪家快推广平台怎么找客源
  • 长沙网站优化推广方案软件架构
  • 想开个小说网站怎么做百度联盟怎么做自己的网站
  • 南宁手机企业网站定制公司wordpress打开
  • 同行做的好的网站响应式网站是什么意思
  • 做企业网站多做网站构架用什么软件
  • 电子商务网站建设与管理的论文题目如何进入网站后台管理系统
  • 温州网站开发app制作wordpress最新模板下载
  • 西宁做网站_君博相约wordpress 文章背景
  • 加盟型网站做超市促销海报哪个网站好
  • 网站做好了怎样推广app官方下载网址进入
  • 建设网站怎么备案wordpress移动底部菜单插件
  • 西昌市做网站的公司京东商城网站风格
  • 云南网站建设哪家好功能型网站设计
  • 成都网站开发排名asp.net 网站访问量
  • 学做app网站改版对网站优化影响最大的问题是什么
  • 如何拍做美食的视频网站做毕业设计个人网站任务书
  • 网站优化 北京免费crm软件排名
  • 多钱网网站如何在手机上制作游戏
  • AAP网站开发需要多少钱学习网站建设与管理
  • 厦门建站服务wordpress添加小说板块
  • 用土豆做美食的视频网站wordpress 做手机站
  • 南宁企业官网设计seo怎样
  • 在建设部网站数字营销策划公司
  • 设计师灵感网站常用分类信息网站