潍坊网站制作最低价格,重庆专业网站建设公司哪家好,百度的营销中心上班怎么样,用vs2012做网站教程前言#xff1a;本系列博客又更新了#xff0c;是博主研究很长时间#xff0c;亲自动手实践过后的心得#xff0c;k8s集群是购买了5台阿里云服务器部署的#xff0c;这个集群差不多搞了一周时间#xff0c;关于k8s的知识点#xff0c;我也是刚入门#xff0c;这方面的知… 前言本系列博客又更新了是博主研究很长时间亲自动手实践过后的心得k8s集群是购买了5台阿里云服务器部署的这个集群差不多搞了一周时间关于k8s的知识点我也是刚入门这方面的知识建议参考博客园大神edisonchou的系列文章《.NET Core on K8S学习实践系列文章索引(Draft版)》为什么我要写该系列的文章是因为我之前 工作的几家公司应用都已经容器化了.net framework 应用也在慢慢迁移到.net core 上.net core 从1.0就开始使用了作为开发人员有些细节上的东西对开发人员是封闭的我们只知道项目开发完成通过Jenkins构建构建完成把镜像推送到HarBor然后在禅道上建个发布任务贴上镜像的地址发给运维就好了。我就对这个过程很好奇业余时间也在研究这方面的东西。好了暂且聊到这里下面我就分享一下自己在搭建k8s集群的心得有说的不对的地方还请纠正。我们都知道Kubernetes自身侧重稳定性、可扩展性、安全性核心策略的变化小周边生态持续爆发。k8s搭建的方式有三种1社区方案杂乱、不可靠、升级难2kubeadm优雅、简单、支持高可用、升级方便、不易维护、文档不够细致 3二进制部署建议初学者使用二进制搭建因为可以快速放弃哈哈哈玩笑归玩笑二进制的方式易于维护、灵活、升级方便。我的k8s集群使用的是二进制搭建的5台阿里云的配置 如下环境参数k8s 1.14.0 Docker 17.03.1-ce Harbor 1.6.0 Jenkins v2.150.2一定 要注意版本问题注意使用云服务器的跳过keepalived的配置不要用虚拟ip云环境一般都不支持自己定义虚拟ip就直接把虚拟ip设置为第一个master的ip就可以了。 PS如果是一定要高可用的话可以购买云商的负载均衡服务比如阿里云的SLB把backends设置成你的三个master节点然后虚拟ip就配置成负载均衡的内网ip即可。具体的集群搭建细节我就不列出来了因为不是重点。准备Deployment YAML这个YAML文件引用自Edison Zhouhttps://www.cnblogs.com/edisonchou/p/aspnet_core_on_k8s_firststudy_part3.html在这里我们使用了Edison Zhou的镜像仓库 apiVersion: apps/v1kind: Deploymentmetadata: name: k8s-demonamespace: aspnetcore labels: name: k8s-demospec: replicas: 2 selector: matchLabels: name: k8s-demo template: metadata: labels: name: k8s-demo spec: containers:- name: k8s-demo image: edisonsaonian/k8s-demo ports:- containerPort: 80 imagePullPolicy: Always---kind: ServiceapiVersion: v1metadata: name: k8s-demonamespace: aspnetcorespec: type: NodePort ports:- port: 80 targetPort: 80 selector: name: k8s-demo这里这个deploy.yaml就会告诉K8S关于你的API的所有信息以及通过什么样的方式暴露出来让外部访问。 需要注意的是这里我们提前为要部署的ASP.NET Core WebAPI项目创建了一个namespace叫做aspnetcore因此这里写的namespace : aspnetcore。 K8S中通过标签来区分不同的服务因此这里统一name写成了k8s-demo。 在多实例的配置上通过replicas : 2这个设置告诉K8S给我启动2个实例起来当然你可以写更大的一个数量值。 最后在spec中告诉K8S我要通过NodePort的方式暴露出来公开访问因此端口范围从上一篇可以知道应该是 30000-32767这个范围之内。通过kubectl 部署到k8s需要先后执行以下命令kubectl create namespace aspnetcore // 创建一个命名空间“aspnetcore”cd aspnetcore/vim deploy.yaml //将上面的配置写入该文件中kubectl create -f deploy.yaml[rootm7-a2-15-43 aspnetcore]# kubectl get svc -n aspnetcoreNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEk8s-demo NodePort 10.254.180.117 none 80:8671/TCP 4h55m可以看到在命名空间aspnetcore下就有一个k8s-demo的服务运行起来了并通过端口号8671向外提供访问。验证WebAPI是否可以访问首先在浏览器中访问API接口看看是否能正常访问http://公网IP:8671/api/values然后我们再到Dashboard中看看k8s-demo的状态我们点击命名空间选择aspnetcore当然了你也可以直接点击“集群”选项下面的“命名空间”点击对应的名称里面可以看到详细的信息。从Dashboard中可以看到更为详细的信息包括运行的Deployment、容器组由于我们设置的replicas2因此会有2个容器运行起来、副本集等等也可以通过Dashboard实时初步地监控我们的API的运行情况。通过Dashboard伸缩WebAPI在Dashboard中我们可以可视化地对我们的Deployment进行容器实例的伸缩具体操作可以参考https://www.cnblogs.com/edisonchou/p/aspnet_core_on_k8s_firststudy_part3.html这里我就不再多说了。本文简单总结了一下使用阿里云部署高可用k8s集群可能有同学说怎么不详细写一下部署的过程呢由于时间仓促部署的过程文档还在整理中况且部署的过程和该系列文章的主题不符大家可以参考其他文章关于Dashboard一般企业内部是不会使用的都是自研的只需要了解即可。该篇文章的目的是 想让大家体验一下所谓的容器编排以及asp.net core on k8s。笔者也是刚接触有很多东西需要学习这只是k8s的一点点因为还没用到生产 环境需要观察一段时间后期我把部署的过程整理一下再分享给大家。提前预告一下篇博客的主题Jenkinsk8s实现CI/CD敬请期待。这是该系类博客要使用的项目https://github.com/guozheng007/asp.net-core2.1-miaosha-projectEdison Zhouhttps://www.cnblogs.com/edisonchou/p/aspnet_core_on_k8s_firststudy_part3.html刘果国https://coding.imooc.com/class/335.html付费课程366.00原文链接https://www.cnblogs.com/runningsmallguo/p/11345620.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com