k8s发布自己的项目(nginx为例)

这篇博客介绍了如何在阿里云上创建镜像仓库,构建自定义的Nginx Docker镜像,包括编写Dockerfile、添加配置文件和HTML内容,以及如何在容器中修改并生成新镜像。接着,博主详细阐述了如何通过阿里云官方教程将镜像上传到云仓库,并利用Kubernetes(K8s)部署Nginx应用,包括生成yaml文件、设置网络和暴露服务。
摘要由CSDN通过智能技术生成
  1. 首先我们需要一个镜像仓库,这里我是用的是阿里云(个人免费)
  2. 搜索容器镜像服务,并且进入个人版
    在这里插入图片描述

在这里插入图片描述
3. 然后创建一个命名空间,随便取
在这里插入图片描述
4. 创建一个镜像仓库
在这里插入图片描述
在这里插入图片描述

  1. 做一个自己的镜像,这里我以nginx为例,并展示一下如何直接修改docker镜像(自己的jar包啥的,打成docker镜像后续一模一样)

目录结构如下
在这里插入图片描述
docker pull nginx:1.14.2-alpine

编写dockerfile

FROM nginx:1.14.2-alpine
MAINTAINER wch

#将html和配置文件复制对应目录下
ADD index.html /usr/share/nginx/html/
ADD nginx.conf /etc/nginx/

RUN echo 'echo init ok!!!!!'

nginx.conf

worker_processes auto;   #worker数,该值越大,处理并发量越多,可以为数字或者auto
 
events {
    worker_connections  1024;   #每个worker进程支持的最大连接数
}
 
 
http {
    include       mime.types;
    default_type  application/octet-stream;
 
    sendfile        on;     		#静态服务器时开启性能大增,将in_fd文件句柄的内容发送到out_fd,反向代理时用处不大,因为反向代理时是socket不是in_fd,不符合sendfile参数要求
    #tcp_nopush     on;
 
    #keepalive_timeout  0;
    keepalive_timeout  65;  #连接超时时长
 
    #gzip  on;
 
    client_max_body_size   20m;
    server {
        listen       80;   #监听的端口  

     location / {
        root   /usr/share/nginx/html; #index.html的地址
        index  index.html index.htm;   #html入口文件名
        try_files $uri $uri/ /index.html;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

index.html

<html>
<head>
 <title>nginx in Docker</title>
</head>
 <body>
    <h2>hello world! nginx in Docker.</h2>
</body>
</html>

运行dockerfile,在dockerfile目录下运行命令(注意有个" .")
docker build -t nginx-csdn:latest .
在这里插入图片描述
在这里插入图片描述
如果还需要更改,可以运行镜像,然后进入容器中直接修改,再通过下述命令生成新镜像即可
进入容器:docker exec -it [容器id] /bin/bash
容器生成镜像docker commit -a "作者" -m "说明" [容器id] [新镜像名]:[版本号]

  1. 然后根据阿里云官方教程,上传镜像
    在这里插入图片描述

首先连接docker(仅第一次需要) docker login --username=[阿里云name] registry.cn-hangzhou.aliyuncs.com
在这里插入图片描述
然后给镜像添加tag docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/wchimages/nginx-csdn:[镜像版本号]
在这里插入图片描述

最后上传镜像到云仓库,版本号就是刚才自己设置的V1.0.0
docker push registry.cn-hangzhou.aliyuncs.com/wchimages/nginx-csdn:[镜像版本号]
然后就可以再云仓库看到啦
在这里插入图片描述

  1. 发布k8s(具体配置解析下次我再单独做一期)
    生成deployment的yaml文件
    kubectl create deployment nginx-csdn --image=registry.cn-hangzhou.aliyuncs.com/wchimages/nginx-csdn:V1.0.0 --dry-run -o yaml > config.yaml
    运行yaml文件
    kubectl apply -f config.yaml
    设置网络
    kubectl expose deployment nginx-csdn --port=80 --target-port=80 --type=NodePort

  2. 效果展示
    在这里插入图片描述
    在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值