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

k8s简单部署nginx

文章目录

    • 1. 前言
    • 2. 部署nginx
      • 2.1. **创建一个nginx的Deployment**
      • 2.2. **创建一个nginx的service**
    • 3. 总结

1. 前言

在这里插入图片描述

前文提要:

  1. kubeadm简单搭建k8s集群
  2. 第三方面板部署k8s

上篇文章我们简单部署了k8s的集群环境,相比一定迫不及待的想部署一个实际应用了吧。那这里我们就简单部署一个大家几乎都用得上的应用nginx。

2. 部署nginx

在这里插入图片描述

2.1. 创建一个nginx的Deployment

里面一一般包含nginx相关的镜像,端口,名字,pod数量

kubernetes主要的功能就是管理多个Pod,Pod中可以包含一个或多个容器,而kubernetes是如可管理多个Pod的呢?对,没错,就是通过控制器,比如Deployment

vim nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deployment
spec:replicas: 2  # 设置副本数量selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:latest #镜像拉取地址ports:- containerPort: 80 #监听端口
kubectl apply -f nginx-deployment.yaml
  1. 执行配置
kubectl apply -f nginx-deployment.yaml

在这里插入图片描述
在这里插入图片描述
到这里running就算创建完成了。

❓那么,如何访问呢?或者说怎么把服务暴漏呢?那么多容器,到底访问哪一个呢?❓

2.2. 创建一个nginx的service

Service的主要目标是为Kubernetes集群内的应用程序提供一个稳定的网络端点,使它们可以相互通信。它顺便实现了以下几个功能。

  • 服务发现:Kubernetes中的应用程序通常以副本的方式运行,这意味着多个相同的应用程序副本可能分布在集群的不同节点上。Service允许客户端应用程序找到并连接到这些副本,而无需了解它们的具体位置。Service为应用程序提供了一个虚拟的DNS名称或IP地址,客户端可以使用该名称或IP地址来访问服务。
  • 负载均衡:Service在后台自动为多个副本分布的应用程序提供负载均衡。当客户端请求连接到Service时,它会将请求平均分发给可用的副本,以确保流量分布均匀,避免某个副本过载。
  • 完整性检查:Service还提供了对服务的基本完整性检查。如果某个副本不可用(例如,由于节点故障或容器崩溃),Service会将流量路由到可用的副本,以确保服务的连续性。

不过我们为了测试,我们就用了一个最简单的ndeport的网络,说实话这并为用到k8s的核心内容,相当于单主机部署nginx并且开了一个端口。

在这里插入图片描述

  • ClusterIP是默认的Service类型。 它为服务分配一个虚拟的Cluster IP地址,仅在Kubernetes集群内部可用。
    这意味着只有集群内部的其他Pod可以通过Cluster IP地址访问该服务。
    ClusterIP通常用于内部微服务之间的通信,不会暴露到集群外部。 NodePort:

  • NodePort: 类型的Service会在每个Node上都开放一个静态端口,允许从集群外部访问服务。
    当外部流量到达NodePort端口时,它将被转发到Service的Cluster IP地址,并由Kubernetes进行负载均衡。
    NodePort通常用于需要从集群外部访问服务的场景,但不是最安全的方式,因为端口是公开的。 LoadBalancer:

  • LoadBalancer:类型的Service使用云提供商(如AWS、Azure、GCP)的负载均衡器服务来公开应用程序。
    在创建LoadBalancer Service时,云提供商将为该服务分配一个外部IP地址,并将流量分发到集群中的Pod。
    LoadBalancer通常用于需要在云环境中公开服务并实现负载均衡的情况。它对于外部流量非常有用,并且可以与HTTPS等TLS证书集成以提供安全的外部访问。

一般在落地方案中LoadBalancer分发流量是比较合适的,同时在纯后端应用中使用ClusterIP也没问题。

  1. 创建配置文件:
vim nginx-service.yaml
apiVersion: v1
kind: Service
metadata:name: nginx-service
spec:selector:app: nginxports:- protocol: TCPport: 80targetPort: 80nodePort: 8000 #nortPort开在主机的端口type: NodePort  # 这里使用LoadBalancer类型,如果你在本地运行,可以使用NodePort类型或ClusterIP类型

/1e208a1ada514890ae22c3689db903b5.png)

  1. 执行配置文件:
kubectl apply -f nginx-service.yaml

在这里插入图片描述

3. 总结

这篇文章,我们使用nodePort访问了k8s部署的nginx,并且简单理解了k8s的网络构成,这对对于我们理解k8s的庞大架构是重要的,希望我们不忘初心,砥砺前行!

相关文章:

k8s简单部署nginx

文章目录 1. 前言2. 部署nginx2.1. **创建一个nginx的Deployment**2.2. **创建一个nginx的service** 3. 总结 1. 前言 前文提要: kubeadm简单搭建k8s集群第三方面板部署k8s 上篇文章我们简单部署了k8s的集群环境,相比一定迫不及待的想部署一个实际应用了…...

小黑子—MyBatis:第四章

MyBatis入门4.0 十 小黑子进行MyBatis参数处理10.1 单个简单类型参数10.1.1 单个参数Long类型10.1.2 单个参数Date类型 10.2 Map参数10.3 实体类参数(POJO参数)10.4 多参数10.5 Param注解(命名参数)10.6 Param注解源码分析 十一 小…...

Docker快速上手:使用Docker部署Drupal并实现公网访问

文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal6. 固定Drupal 公网地址 前言 Dupal是一个强大的CMS,适用于各种不同的网站项目,从小型个人博客到大型企业级门户网站。它的学习…...

React知识点系列(1)-每天10个小知识

目录 1.什么是 React,以及它在前端开发中的优势是什么?2.你是如何组织和管理 React 组件的?3.你能解释一下 React 的生命周期方法吗?你通常在哪个生命周期方法中发起网络请求?4.什么是 React Hooks?你常用哪…...

substring 和 substr 的区别

1、结论 两个方法都用于截取字符串,其用法不同: 1)相同点: ① 都用于截取字符串; ② 第一个参数都是表示提取字符的开始索引位置; 2)不同点: ① 第一个参数的取值范围不同&…...

产品经理的工作职责是什么?

产品经理的工作职责主要包括以下几个方面: 1. 产品策划与定义:产品经理负责制定产品的整体策略和规划,包括产品定位、目标用户、市场需求分析等。他们需要与团队合作,定义产品的功能和特性,明确产品的核心竞争力和差异…...

智能井盖传感器:提升城市安全与便利的利器

在智能化城市建设的浪潮中,WITBEE万宾智能井盖传感器,正以其卓越的性能和创新的科技,吸引着越来越多的关注。本文小编将为大家详细介绍这款产品的独特优势和广阔应用前景。 在我们生活的城市中,井盖可能是一个最不起眼的存在。然而…...

给你一个项目,你将如何开展性能测试工作?

一、性能三连问 1、何时进行性能测试? 性能测试的工作是基于系统功能已经完备或者已经趋于完备之上的,在功能还不够完备的情况下没有多大的意义。因为后期功能完善上会对系统的性能有影响,过早进入性能测试会出现测试结果不准确、浪费测试资…...

点燃市场热情,让产品风靡全球——实用推广策略大揭秘!

文章目录 一、实用推广策略的重要性1. 提高产品知名度和认可度2. 拓展产品市场和用户群体3. 增强企业品牌形象和市场竞争力 二、实用推广策略的种类1. 社交媒体推广2. 定向推广3. 口碑营销4. 内容推广 三、实用推广策略的实施步骤1. 研究目标用户和市场需求,明确产品…...

Python操作Hive数据仓库

Python连接Hive 1、Python如何连接Hive?2、Python连接Hive数据仓库 1、Python如何连接Hive? Python连接Hive需要使用Impala查询引擎 由于Hadoop集群节点间使用RPC通信,所以需要配置Thrift依赖环境 Thrift是一个轻量级、跨语言的RPC框架&…...

客户收到报价后突然安静了,怎么办?

外贸人常常会有这样的经历:与意向度很高的客户数封邮件沟通报价之后,突然客户那边就沉静下来了,而不知所措,遇到这样的客户,应该怎么办呢? Vol.1 了解客户信息 首先自身要养成一个好习惯,针对…...

O2OA(翱途)常见知识之 mysql 数据库备份

概述 系统运行一段时间后,可能发生各种情况导致数据丢失,如硬件故障、人为错误、软件错误、病毒攻击等。定期备份可以帮助您保护数据免受这些风险的影响,以便在需要时能够恢复数据。 O2OA应用本身可以通过dump配置每天自定备份数据&#xff…...

如何让你的程序支持lua脚本

最近做了一个控制机械臂的程序,使用C语言开发的,调试的时候总是需要修改代码来调整运动轨迹, 总是要编译,实在烦人 不过有个方法就是使用lua来调试运动逻辑 代码如下 static int lua_up(lua_State*l) {size_t stepluaL_checkinteger(l,1);//向上动作up(step);return 0; }st…...

什么是系统架构师?什么是系统架构?

1. 什么是系统架构师? 系统架构设计师(System Architecture Designer)是项目开发活动中的关键角色之一。系统架构是系统的一种整体的高层次的结构表示,是系统的骨架和根基,其决定了系统的健壮性和生命周期的长短。 系统架构设计…...

大数据NoSQL数据库HBase集群部署

目录 1. 简介 2. 安装 1. HBase依赖Zookeeper、JDK、Hadoop(HDFS),请确保已经完成前面 2. 【node1执行】下载HBase安装包 3. 【node1执行】,修改配置文件,修改conf/hbase-env.sh文件 4. 【node1执行】&#xf…...

百乐钢笔维修(官方售后,全流程)

文章目录 1 背景2 方法3 结果 1 背景 在给钢笔上墨的途中,不小心总成掉地上了,把笔尖摔弯了(虽然还可以写字,但是非常的挂纸),笔身没有什么问题,就想着维修一下笔尖或者替换一下总成。 一般维…...

Redis 介绍安装

数据库 关系型数据库 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。 SQL 语句(标准数据查询语言)就是一种基于关系型数据库的语言,用于执行对关系型…...

MyCat管理及监控

MyCat原理 在 MyCat 中,当执行一条 SQL 语句时, MyCat 需要进行 SQL 解析、分片分析、路由分析、读写分离分析等操作,最终经过一系列的分析决定将当前的SQL 语句到底路由到那几个 ( 或哪一个 ) 节点数据库,数据库将数据执行完毕后…...

滑动窗口算法题

更新结果 1、判断条件成立后更新结果 2、入窗口后即可更新结果 判断: 出窗口后状态更新,循环回去再判断。 1、长度最小的子数组 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台...

部署zabbix代理服务器、部署zabbix高可用集群

目录 部署zabbix代理服务器 1、环境设置 2、设置 zabbix 的下载源,安装 zabbix-proxy 3、配置Mariadb yum源,并下载marisdb数据库 4.、启动数据库,并初始化数据库 5、登录数据库,创建数据库并指定字符集,并进行…...

从U-Net到DocUNet:一个图像分割经典架构如何“跨界”解决文档矫正难题?

从U-Net到DocUNet:经典分割架构如何重塑文档图像矫正技术 当你在咖啡馆随手拍下一张皱巴巴的收据时,是否想过手机镜头捕捉的二维图像如何还原成平整的文档?这个看似简单的需求背后,隐藏着计算机视觉领域一个极具挑战性的几何变换问…...

从OpenMV2到4代,我踩过的那些坑:画面变绿、传感器接触不良与内存擦除的避坑实录

从OpenMV2到4代:硬件升级中的稳定性挑战与实战解决方案 作为一名长期使用OpenMV系列开发视觉项目的工程师,我从OpenMV2一路升级到4代,见证了硬件性能的飞跃,也深刻体会到稳定性问题带来的困扰。其中最令人头疼的莫过于"画面变…...

ESP-01/01S 固件烧录实战:从零到一,解锁Wi-Fi模块核心功能

1. 认识ESP-01/01S:你的第一个Wi-Fi模块 第一次拿到ESP-01或ESP-01S这个小家伙时,你可能会觉得它像个黑色的小饼干——尺寸只有24.8mm x 14.3mm,却集成了完整的Wi-Fi功能。我在2016年第一次接触这个模块时,就被它的性价比震惊了&a…...

【LLM推理加速】Lookahead:无损加速新范式,如何用Trie树与多分支策略突破IO瓶颈

1. 为什么我们需要无损推理加速? 大语言模型在实际应用中面临的最大痛点之一就是推理速度慢。想象一下,当你向AI助手提问时,每次等待回复都要花上好几秒,这种体验有多糟糕。传统的加速方法比如量化(把模型参数从16位压…...

DWC_ether_qos驱动软复位实战:解决网络丢包与DMA死锁

1. 项目概述:从一次诡异的网络丢包说起最近在调试一块基于某款主流SoC的工控板卡时,遇到了一个让人头疼的问题:设备在长时间高负载运行后,网络会间歇性地出现严重丢包,甚至完全断连。重启网络服务能暂时恢复&#xff0…...

JetBrains IDE试用期重置终极指南:如何永久免费使用专业开发工具

JetBrains IDE试用期重置终极指南:如何永久免费使用专业开发工具 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 还在为JetBrains IDE试用期到期而烦恼吗?每次30天试用结束后,那…...

从零开始用vnpy搭建你的第一个量化交易机器人(保姆级Python教程)

从零开始用vnpy搭建你的第一个量化交易机器人(保姆级Python教程) 第一次接触量化交易时,我被那些复杂的术语和代码吓得不轻。直到发现vnpy这个Python框架,才真正找到了入门的方向。vnpy就像是为Python开发者量身定制的量化交易工具…...

在Windows 10上用CPU跑ChatGLM-6B:我的64G内存工作站搭建实录(含Anaconda配置避坑)

在Windows 10上仅用CPU运行ChatGLM-6B:64G内存工作站的完整部署指南 当大语言模型的热潮席卷而来,许多开发者和技术爱好者都渴望在本地运行这些强大的AI工具。然而,高端显卡的高昂价格让不少人望而却步。本文将分享如何在配备64G内存的Windo…...

React Fiber vs Vue 响应式:从调用栈到依赖图,前端两大架构的底层对决

写在前面 前端框架之争吵了快十年。但坦白说,大多数争论卡在"React 好用还是 Vue 好用"的层面,很少有人真正追问:这两个框架为什么从根上就是两套东西? 它们的差异不是 API 设计喜好不同,而是对"UI 的…...

详解:XSS 攻击和 CSRF 攻击

一、先看看核心区别 XSS:偷你的身份-》在你的浏览器里面跑恶意JS ,主动拿你的Cookie,冒充你。CSRF:借你的身份-》不偷你的Cookie,而是利用浏览器自带Cookie 的属性,骗网站替你做事。 二、XSS 讲解 1、核心本…...