k8s 部署nginx前端

news2024/12/24 0:14:49

1.构建docker镜像,k8s拉取镜像运行


​​​​​​​docker自己安装 

[root@master1 ~]# docker pull nginx:1.24.0
[root@master1 ~]# mkdir k8s-nginx
[root@master1 ~]# cd k8s-nginx
[root@master1 k8s-nginx]# vim nginx.conf
    server_tokens off;
    server {
        listen       8010; #web访问端口
        server_name  localhost;
            
        keepalive_timeout  65;
        proxy_connect_timeout 300;
        proxy_send_timeout 300;
        proxy_read_timeout 300;
                
        location / {
            root /etc/nginx/dist;   #web代码路径
            index  index.html index.htm;
        }

        #后端代码接口配置
        #location /api {
        #    proxy_pass http://127.0.0.1:8001;
        #    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #}

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
[root@master1 k8s-nginx]# mkdir dist #这个dist是前端包目录,我这里只做个测试
[root@master1 k8s-nginx]# cd dist
[root@master1 dist]# vim index.html
this is a test!

写Dockerfile:

[root@master1 k8s-nginx]# vim Dockerfile
FROM nginx:1.24.0

COPY nginx.conf /etc/nginx/conf.d/web.conf

COPY dist /etc/nginx/dist

构建镜像:

[root@master1 k8s-nginx]# docker build -t nginx:v1 .
Sending build context to Docker daemon  5.12 kB
Step 1/3 : FROM nginx:1.24.0
 ---> 6b753f58c54e
Step 2/3 : COPY nginx.conf /etc/nginx/conf.d/web.conf
 ---> Using cache
 ---> c67c98f8e802
Step 3/3 : COPY dist /etc/nginx/dist
 ---> 546db553f62a
Removing intermediate container d9a8e88cb4da
Successfully built 546db553f62a
将镜像上传到镜像仓库,我这里是上传到阿里云的镜像仓库
仓库地址:
https://cr.console.aliyun.com/cn-zhangjiakou/instance/credentials

登录镜像仓库:
docker login --username=asula registry.cn-zhangjiakou.aliyuncs.com

推送镜像:
docker tag nginx:v1 registry.cn-zhangjiakou.aliyuncs.com/ymku/nginx:v1
docker push registry.cn-zhangjiakou.aliyuncs.com/ymku/nginx:v1

k8s拉取私有仓库需要登录,有时候不可能为每个k8s节点登录
我们就需要为创建k8s集群的secret,设置秘钥配置imagePullSecrets

1.创建secret

kubectl create secret docker-registry secret名 --docker-server=仓库地址 --docker-username=用户名 --docker-password=密码 

例如:

kubectl create secret docker-registry secret-key --docker-server=registry.cn-zhangjiakou.aliyuncs.com --docker-username=ABCD --docker-password=QWER!@
--docker-server=registry.cn-zhangjiakou.aliyuncs.com  #阿里云仓库地址
--docker-username=ABCD  #阿里云仓库登录的用户名
--docker-password=QWER!@#$ #阿里云仓库的登录密码


2.删除secret

kubectl delete secret secret-key 

编写k8s的yaml文件:

[root@master1 k8s-nginx]# vim nginx-test.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx-servie
  name: nginx-service
  namespace: default
spec:
  ports:
    #对外暴露端口30003
  - nodePort: 30003
    port: 8010
    protocol: TCP
    targetPort: 8010
  selector:
    app: nginx-web
  #NodePort对外暴露端口
  type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nginx-web
  name: nginx-web
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx-web
  template:
    metadata:
      labels:
        app: nginx-web
      namespace: default
    spec:
      imagePullSecrets:
      - name: secret-key
      containers:
      - image: registry.cn-zhangjiakou.aliyuncs.com/ymku/nginx:v1
        name: nginx
        imagePullPolicy: Always
        ports:
        - containerPort: 80
        resources:
          requests:
            cpu: 100m
            memory: 1Gi
          limits:
            cpu: 100m
            memory: 1Gi
[root@master1 k8s-nginx]# kubectl apply -f nginx-test.yaml 
service/nginx-service configured
deployment.apps/nginx-web created
[root@master1 k8s-nginx]# kubectl get pod
NAME                        READY   STATUS    RESTARTS   AGE
nginx-web-9f5fbbb7b-bjwvg   1/1     Running   0          3s


验证:http://10.10.10.10:30003/index.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1138698.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第四章 文件管理 七、文件共享

目录 一、基于索引结点的共享方式(硬链接) 1、知识回顾: 2、例子: 二、基于符号链的共享方式(软链接) 1、例子 三、总结 一、基于索引结点的共享方式(硬链接) 1、知识回顾: 索引结点,是一…

前端《中国象棋》游戏

源码下载地址 支持:远程部署/安装/调试、讲解、二次开发/修改/定制 查看视频 本程序是一个基于Html/css/javascrip的网页端象棋APP,其中引入JQuery来简便开发。 在程序中,使用一个Map二维数组来表示棋盘,通过给棋子设置不同的横坐…

【Gradle-11】动态修改VersionName和VersionCode

前言 有个读者问了一个比较有意思又很常见的问题,怎么修改VersionName和VersionCode? 这位读者提问的方式也挺好,报错信息和尝试过的方式都提到了。 关于报错以及解决方案,正如上图我评论回复所说。 静态修改直接在build.gradl…

canvas 状态管理

本文简介 带尬猴,我是德育处主任 canvas 绘图时会根据当前状态来绘制。很多的 canvas 库都利用到这一特性。比如 p5.js 利用了 canvas 状态特性衍生出 push 和 pop 函数实现状态隔离(既然提到了,下一篇就讲这个)。 有兴趣了解 p…

Fabric.js 样式不更新怎么办?

本文简介 带尬猴,我嗨德育处主任 不知道你有没有遇到过在使用 Fabric.js 时无意中一些骚操作修改了元素的样式,但刷新画布却没更新元素样式? 如果你也遇到同样的问题的话,可以尝试使用本文的方法。 是否需要重新绘制 我先举个例…

Linux - firewall-cmd 命令添加端口规则不生效排查

文章目录 linux 防火墙 firewall-cmd 命令详解问题排查 linux 防火墙 firewall-cmd 命令详解 基本语法 firewall-cmd --zonezone-name --add-serviceservice-name --permanent命令参数 --zone:指定要添加服务的区域名称。 --add-service:指定要添加的…

开源利器:it-tools 项目介绍

作为一名开发人员,我们在日常工作和学习中常常需要使用一系列小工具,如JSON格式化、JSON转表格、当前时间戳、XML格式化、SQL格式化、密码生成以及UUID生成等。通常情况下,我们会在网上搜索各种在线工具来满足这些需求。然而,这些…

vue3实现图片裁剪上传功能

1、安装引入vue-cropper&#xff08;可参考&#xff1a;https://www.npmjs.com/package/vue-cropper&#xff09; npm install vue-croppernextimport vue-cropper/dist/index.cssimport { VueCropper } from "vue-cropper"; 2、组件完整代码 <template><…

SpringMVC Day 03 : 处理静态资源

前言 欢迎来到第三天的 SpringMVC 学习系列&#xff01;在前两天的教程中&#xff0c;我们已经学习了如何搭建 SpringMVC 环境、创建控制器和处理请求等基础知识。今天&#xff0c;我们将继续探索 SpringMVC 的功能&#xff0c;并学习如何处理静态资源。 在现代 Web 应用程序…

CloudQuery + StarRocks:打造高效、安全的数据库管控新模式

随着技术的迅速发展&#xff0c;各种多元化的数据库产品应运而生&#xff0c;它们不仅类型众多&#xff0c;而且形式各异&#xff0c;国产化数据库千余套&#xff0c;开源数据库百余套 OceanBase 、PolarDB 、StarRocks…还有一些像 Oracle、MySQL 这些传统数据库。这些数据库产…

php+JavaScript实现callback跨域请求jsonp数据

摘要 JSONP 是 JSON with Padding 的缩写&#xff0c;是一种解决跨域数据获取的方案。由于浏览器的同源策略限制&#xff0c;不同域名之间的前端JS代码不能相互访问到对方的数据&#xff0c;JSONP通过script标签的特性&#xff0c;实现在不同域名的网页间传递数据。 其原理是…

vue3项目运行报错import zhCn from “element-plus/lib/locale/lang/zh-cn“

解决办法 import zhCn from "element-plus/lib/locale/lang/zh-cn";修改为 import zhCn from "element-plus/dist/locale/zh-cn.mjs";

MySQL 8.2 – 透明的读写分离(译)

在MySQL 8.2的版本中&#xff0c;MySQL Router能自动分辨对数据库读写/操作并把这些操作路由到正确的实例上&#xff0c;这是要革众多SQL中间件的命&#xff01;大家说这个算不算遥遥领先呢&#xff1f; 关于号主&#xff0c;姚远&#xff1a; Oracle ACE&#xff08;Oracle和…

使用wireshark的字符串过滤功能

1、打开wireshark&#xff0c;捕获一段时间的数据包 2、选中一个数据包的最下面的内容部分&#xff0c;然后右键鼠标&#xff0c;选择"as Printable Text"。 复制出的文字如下&#xff1a; 截图部分字符串(可包含换行、空格等)&#xff0c;然后复制 3、点击菜单栏…

计算机网络-应用层(2)

一、DHCP 当需要跨越多个网段提供DHCP 服务时必须使用DHCP 中继代理&#xff0c; 就是在DHCP 客户和服务器之间转发DHCP 消息的主机或路由器。 DHCP 服务端使用UDP 的67号端口来监听和接收客户请求消息&#xff0c; 保留UDP 的68号端口用于接收来自DHCP 服务器的消息回复。 在…

图的应用3.0-----拓扑排序

目录 前言 AOE网 1.相关概念 2.AOE网特征 拓扑排序 1.基本概念 2.方法步骤 3.拓扑排序的应用 拓扑排序代码实现 1.邻接矩阵的代码 2.邻接表代码 前言 今天我们学习图的应用----拓扑排序&#xff0c;说到排序&#xff0c;你们是不是会想到冒泡排序&#xff0c;插入排序…

网络安全将会是IT行业中比较容易就业的方面

当前&#xff0c;网络空间安全面临的形势复杂多变&#xff0c;对抗趋势越发凸显。以窃取敏感数据、破坏关键信息技术设施为目标的有组织网络攻击愈演愈烈&#xff0c;零日漏洞、供应链攻击、数据泄露等重大安全事件层出不穷。 回望2022年&#xff0c;国内&#xff0c;以西北工业…

OpenTiny Vue 3.11.0 发布:增加富文本、ColorPicker等4个新组件,迎来了贡献者大爆发!

你好&#xff0c;我是 Kagol。 非常高兴跟大家宣布&#xff0c;2023年10月24日&#xff0c;OpenTiny Vue 发布了 v3.11.0 &#x1f389;。 OpenTiny 每次大版本发布&#xff0c;都会给大家带来一些实用的新特性&#xff0c;8.14 我们发布了 v3.10.0 版本&#xff0c;增加了4个…

“深入探讨操作系统和虚拟化技术“

目录 引言1.操作系统1.1.什么是操作系统1.2.常见操作系统1.3.个人版本和服务器版本的区别1.4.Linux的各个版本 2.安装VMWare虚拟机1.VMWare虚拟机介绍2.VMWare虚拟机安装3.VMWare虚拟机配置 3.安装配置Windows Server 2012 R24.完成电脑远程访问电脑5.服务器环境搭建配置jdk配置…

Windows下安装Anaconda、Pycharm以及iflycode插件图解

目录 一、下载Anaconda、Pycharm以及iflycode插件 二、创建相关文件夹 三、Pycharm社区版安装详细步骤 四、Anaconda安装详细步骤 五、配置Pycharm 六、安装iflycode插件 Anaconda是一款集成的Python环境&#xff0c;anaconda可以看做Python的一个集成安装&#xff0c;安…