使用阿里云k8s服务部署项目以及pvc持久化思路.

一如惯例,懒人一枚,

  1. 开启阿里云k8s服务,
  2. 开启阿里云容器镜像服务
  3. 登录master主机,创建项目文件夹.
  4. 在项目文件夹创建Dockerfile
    vi /root/nginx/Dockerfile
    From nginx
    ADD nginx.conf /etc/nginx/nginx.conf
    ADD saasfrontal.conf /etc/nginx/conf.d/saasfrontal.conf
    VOLUME /root/nginx/frontal /usr/share/nginx/frontal #将开发打包出来的页面文件夹映射到容器内部,即可实现从外部更改即可,不用每次把文件拷贝到容器内,占用更多的时间和io.
    CMD nginx -g daemon off #必须以此命令启动nginx进程,否则容器会不断loopcrash,原因在于其他如nginx -f 命令只是一次性执行,无法持续执行.
  5. 在任意位置执行
    docker build /root/nginx -t #<你的镜像服务地址>:版本号
    如果不加版本号默认为lastest, build命令后必须指向你要创建的Dockerfile所在的路径,绝对路径或者相对路径均可.
  6. docker login 到你的阿里云容器镜像服务账号下,此处应该可以用aliyun的accessID 和accessKey 进行授权访问,后续慢慢研究
  7. docker push 刚生成的镜像.
  8. 阿里云容器服务中k8s管理台创建一个服务,填写相关的标签(这组服务的名字),镜像为你创建的镜像名称, 对外服务(WAN)或者对内服务(LAN)的端口(比如外部80访问容器内部80端口)创建服务后会自动创建负载均衡,并收取按需付费的费用.
  9. jenkins配置ssh登录:

    这里需要说明一下,
    切换到jenkins用户, 以ssh-keygen -t rsa 一路默认生成公钥和私钥,将jenkins的公钥导入到本服务器的/root/.ssh/authorized_keys文件夹中,
    cat /var/lib/jenkins/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
    执行一次访问
    ssh [email protected]<局域网ip>
    提示rsa证书之类的布拉布拉布拉~,输入yes
    然后在root的ssh文件夹下可以看到一个known_hosts
    known_hosts
    cat known_hosts通过scp拷贝到master服务器上,
    内容如下:
    [172.19.137.244]:10201 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOk68ZPOlrc7Yj5/qhUwVoKgTsz8+9PJkBKWxDXy3WGEDCMDtrNcBPOIVl03NoyitMB6psOYHIXwbNHoxC3Vzl0=
    简单说来root的ssh目录下有这个文件就不需要你再去jenkins逐个登录到某服务器上去确认rsa证书输入那个yes了.
    将authorized_keys文件和known_hosts通过scp拷贝到master服务器上,就不需要再手工以jenkins用户登录到master服务器完成一个初始化.
    scp /root/.ssh/authorized_keys里,否则可能会造成服务器无法登录的问题. [email protected]<master IP>:/root/.ssh/
    scp /root/.ssh/known_hosts [email protected]<master IP>:/root/.ssh/
    这里注意不要偷懒复制整个文件夹, 可能会造成无法登录的问题, 对于已经使用了密钥登录的ecs服务器,还是手工cat的方式附加到root的authorized_keys里,否则可能会造成服务器无法登录的问题.
    ssh-keygen -t rsa 时默认Passphrase为空, 所以这里留空即可.
    Path to key 这里是要提交的是jenkins的私钥, jenkins的默认home文件夹是/var/lib/jenkins,所以私钥默认位置是/var/lib/jenkins/.ssh/id_rsa
    贴入私钥的所有内容
    然后在下面输入docker的ip等相关信息, 作者此服务器已关所以这里反馈连接失败.
  10. jenkins创建一个nginx项目
  11. 创建完成后执行exec shell命令进行, 去除所有的项目文件夹之前的文件夹结构, 并上传项目文件夹到k8s master的nginx目录下.

  12. 使用kubectl 创建rc 并设置副本数量,也可以用web界面创建然后导出下载为yaml.后续只需要进行部分修改. 纯手工去写也可以.
  13. 执行该jenkins任务:


    14.测试访问.

    顺便提一嘴关于PV和PVC:
    1.在阿里云创建nas云盘,
  14. 将nas云盘设置为pv(持久存储卷)
  15. 以现有的pv创建pvc(持久存储卷连接代码)
  16. 将pvc应用给rc(副本控制器).
  17. jenkins将项目文件发送到master上,master配置node连接pvc并实现外部到内部的持久化存储.
    思路是这样的,阿里云的k8s最低配置是3台master群集加3台node群集, 即便是按需付费一年也要差不多5000多一套, 测试不起了.

原文地址:http://blog.51cto.com/13801798/2128184

时间: 2024-10-24 22:00:45

使用阿里云k8s服务部署项目以及pvc持久化思路.的相关文章

阿里云配置服务器部署项目

最近双11来了,作为程序员,终于买了个阿里云ecs服务器,主要便宜. 对于一个前端开发人来说服务器,项目部署好像搭不上边,但是对于爱好者,可以了解一下.刚刚买完不知道怎么搭建.官方给的解释太繁琐,不知道有没有小伙伴跟我一样的感受. 好了话不多说,直接开挂,看截图. 1.这是刚刚购买的状态. 2.这部很关键 要不直接失败.找到安全规则,其他默认的不要改,直接点击右上方,添加安全组规则,填写一个协议,端口范围为了保守填写一个80,授权对象0.0.0.0/0就好.点击保存.这一步配置完成. 3.然后去

阿里云ESC上面部署项目

注意:我这里的服务器是Windows系统,后面会研究Linux下的命令 1.将javaWEB项目打包为war包 右击项目,先择"Export " 2.通过"附件"->"远程连接桌面",连接到服务器 3.将.war文件上传至tocat安装路径下webapps里 4.重启tomcat服务器

品尝阿里云容器服务:初步尝试ASP.NET Core Web API站点的Docker自动化部署

部署场景是这样的,我们基于 ASP.NET Core 2.0 Preview 1 开发了一个用于管理缓存的 Web API ,想通过阿里云容器服务基于 Docker 部署为内网服务. 在这篇博文中分享一下经过实践验证的操作步骤: 一.创建与配置集群 1)首先创建一个 Swarm Mode 的集群(注意创建时不要选择“自动创建负载均衡”,因为我们部署的是内网服务,自动创建的是公网负载均衡,需要手动创建内网负载均衡并绑定到集群): 2)集群创建成功后,会在集群列表中显示下面的信息: 3)接着创建一个

阿里云容器服务与 ASP.NET Core 的 Docker 部署:用 docker secrets 保存 appsettings.Production.json

这是我们使用阿里云容器服务基于 docker 容器部署 asp.net core 应用遇到的另一个问题 —— 如果将包含敏感信息的应用配置文件 appsettings.Production.json 传递给运行在容器中的 asp.net core 应用. Docker 针对这样的应用场景已经提供了解决方案 —— Docker Secrets,对应的 docker 命令是 docker secret .我们就用 docker secrets 解决了这个问题,在这篇随笔中分享一下. 首先在阿里云容器

15分钟在阿里云Kubernetes服务上快速建立Jenkins X Platform并运用GitOps管理应用发布

本文主要介绍如何在阿里云容器服务Kubernetes上快速安装部署Jenkins X Platform并结合demo实践演示GitOps的操作流程. 注意:本文中使用的jx工具.cloud-environments等做过改造用以适配阿里云Kubernetes容器服务,并未在自建Kubernetes集群中做过验证. 先决条件:首先,需要在 阿里云容器服务控制台 创建一个Kubernetes集群,本次实践使用的环境信息如下:master1 192.168.0.119master2 192.168.0

朱晔和你聊Spring系列S1E11:小测Spring Cloud Kubernetes @ 阿里云K8S

朱晔和你聊Spring系列S1E11:小测Spring Cloud Kubernetes @ 阿里云K8S 有关Spring Cloud Kubernates(以下简称SCK)详见https://github.com/spring-cloud/spring-cloud-kubernetes,在本文中我们主要测试三个功能: 使用Kubernetes服务发现配合Spring Cloud Ribbon做服务调用 读取Kubernetes的ConfigMap配置并且支持修改后动态刷新 Spring Bo

在阿里云容器服务上开发基于Docker的Spring Cloud微服务应用

本文为阿里云容器服务Spring Cloud应用开发系列文章的第一篇. 一.在阿里云容器服务上开发Spring Cloud微服务应用(本文) 二.部署Spring Cloud应用示例 三.服务发现 四.服务间通信与集成 五.服务智能路由 六.集中配置管理 七.高可用和容错 八.监控和日志 九.服务的部署和发布策略 微服务概述 单体应用通常指在一个程序中满足多个业务或技术领域的需求,不同的需求领域内化为模块.假定我们要开发一个Web应用,通常的MVC模式可以满足要求.针对不同领域有不少代码生成工具

阿里云ECS服务器部署django

参考 服务器安装的是Centos 系统. uwsgi是使用pip安装的. nginx是使用yum install nginx安装. python 2.7, mysql 5.5使用 yum安装. 它们之间的逻辑关系如下: the web client <-> the web server <-> the socket <-> uwsgi <-> Django uswgi负责从Django拿内容,通过socket传给 web server如nginx, 最后显示

品尝阿里云容器服务:用nginx镜像创建容器,体验基于域名的路由机制

在前一篇博文中我们了解了阿里云容器服务的路由机制: 请求 -> 负载均衡80端口 -> 容器主机9080端口 -> acsrouting路由容器80端口 --基于域名--> Web站点容器端口 在这篇博文中,我们用nginx镜像创建一个容器实际体验一下. 使用容器服务首先要创建一个集群(Cluster),比如这里我们创建一个名叫websites的集群(使用的是swarm mode): 创建好集群后,点击“管理”,进入集群管理页面 -> “负载均衡” -> “域名设置”,