Kubernetes Nginx 发布
kubernetes发布nginx
目录
- Nginx Pod启动
- Service访问Nginx
2.1. NodePort访问Nginx
2.2. ClusterIP访问Nginx
2.3. LoadBalancer访问Nginx
2.4. ExternalName访问Nginx - Deployment方式部署Nginx
3.1 Nginx Replicas
Nginx Pod 启动
nginx-v1.yaml
apiVersion: v1
kind: Pod
metadata:name: nginxlabels:app: nginx
spec:containers:- name: nginximage: nginx:1.14.2ports:- containerPort: 80
创建Pod
kubectl apply -f nginx-v1.yaml
pod/nginx created
查询Pod
kubectl get podsNAME READY STATUS RESTARTS AGE
nginx 1/1 Running 0 2m34s
这个Nginx Pod启动完成后如何访问nginx服务?
有一种访问方式可以使用,进入容器访问localhost:
kubectl exec -it po/nginx -- bash
apt update
apt install -y curl
curl http://localhost
输出结果如下:

在Kubernetes访问集群内访问可以使用Service。
Service访问Nginx
- Service是在一组Pod上对网络服务的抽象;
- Service就像是网线插入到Pod的网卡上,为Pod提供网络通信服务;
- Service指向有多个Pod,因此Service也提供负载均衡服务,Service会将流量分发到不同Pod;
- 由于发布、故障等问题,Pod可能会随时创建或者销毁,因此Service为这些随时变更的Pod提供了统一的网络入口。
NodePort方式访问Nginx
NodePort设置一个或多个可以外部访问的端口,访问方式:节点IP+端口号方式,所有节点都可以。
比如: 我们有一个节点的IP地址为:192.168.1.10,NodePort端口为:80,那么我们就可以在我们自己的主机上通过http://192.168.1.10:80访问服务。
新建一个Nginx NodePort的yaml清单文件: nginx-service-nodeport.yaml,并创建这个NodePort,
kubectl apply -f nginx-service-nodeport.yaml
apiVersion: v1
kind: Service
metadata:name: nginxnamespace: defaultlabels:app: nginx
spec:ports:- name: nginx-service-nodeportnodePort: 80port: 80protocol: TCPtargetPort: 80selector:app: nginxtype: NodePort
通过主机IP+80端口访问Nginx:

ClusterIP访问Nginx
ClusterIP方式为提供集群内访问的IP,即集群内部IP访问方式。ClusterIP只能集群内访问,不能通过外部进行访问。
apiVersion: v1
kind: Service
metadata:name: nginxnamespace: defaultlabels:app: nginx
spec:ports:- name: nginx-service-clusteripport: 80protocol: TCPtargetPort: 80selector:app: nginxtype: ClusterIP
集群内访问ClusterIP测试,新建nginx test Pod清单文件并创建busybox Pod,
kubectl apply -f nginx-test-pod.yaml# nginx test Pod启动成功后进入Nginx Pod
kubectl exec -it nginx-test -- bash
apt update
apt install -y curl
curl http://nginx
nginx-test-pod.yaml
apiVersion: v1
kind: Pod
metadata:name: nginx-testnamespace: defaultlabels:app: nginx-test
spec:containers:- name: nginximage: nginx:1.14.2ports:- containerPort: 80
此时使用主机IP无法正常访问Nginx,但是可以在集群内Pod进行访问

LoadBalancer和ExternalName
目前暂时没有资源可以对这两种方式进行测试,所以暂时不编写这两类的测试。
Deployment方式部署Nginx
单个Pod不好管理副本,Deployement来管理Pod的副本集合。Deployment、副本和Pod关系如下图:

让我们来创建一个Nginx的Deployment 包含4个replicas的清单文件:
apiVersion: apps/v1
kind: Deployment
metadata:name: nginxnamespace: defaultlabels:app: nginx
spec:selector:matchLabels:app: nginxreplicas: 4template:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.14.2imagePullPolicy: IfNotPresentports:- containerPort: 80
相关文章:
Kubernetes Nginx 发布
kubernetes发布nginx 目录 Nginx Pod启动Service访问Nginx 2.1. NodePort访问Nginx 2.2. ClusterIP访问Nginx 2.3. LoadBalancer访问Nginx 2.4. ExternalName访问NginxDeployment方式部署Nginx 3.1 Nginx Replicas Nginx Pod 启动 nginx-v1.yaml apiVersion: v1 kind: Pod…...
华为OD机试真题Python实现【非严格递增连续数字序列】真题+解题思路+代码(20222023)
非严格递增连续数字序列 题目 输入一个字符串仅包含大小写字母和数字 求字符串中包含的最长的非严格递增连续数字序列长度 比如: 12234 属于非严格递增数字序列 🔥🔥🔥🔥🔥👉👉👉👉👉👉 华为OD机试(Python)真题目录汇总 ## 输入 输入一个字符串仅…...
12-render函数
render函数 一、render的作用 非单文件组件时,创建vm的写法: new Vue({el: #root,template: <App></App>,components: {App} })但是该写法在脚手架中会报错。因为脚手架默认引入的是个残缺版的vue。 如果要避免报错,有2种解决…...
磨金石教育摄影技能干货分享|杨元惺佳作欣赏——诗意人文
一般来说,人文摄影总会体现现实性多些。但杨老师是个摄影诗人,他的内心总能将刻板的现实融入美好的光芒。你在他的照片里,看着现实的摄影素材,所感受到的是诗意的绵绵未尽。春网(中国)正所谓春水碧于天&…...
在Pandas中通过时间频率来汇总数据的三种常用方法
当我们的数据涉及日期和时间时,分析随时间变化变得非常重要。Pandas提供了一种方便的方法,可以按不同的基于时间的间隔(如分钟、小时、天、周、月、季度或年)对时间序列数据进行分组。 在Pandas中,有几种基于日期对数据进行分组的方法。我们将…...
基于SPI的增强式插件框架设计
很久之前,为了诊断线上的问题,就想要是能有工具可以在线上出问题的时候,放个诊断包进去马上生效,就能看到线上问题的所在,那该是多么舒服的事情。后来慢慢的切换到 java 领域后,这种理想也变成了现实&#…...
176、【动态规划】leetcode ——1143. 最长公共子序列(C++版本)
题目描述 原题链接:1143. 最长公共子序列 题目描述 本题和 718. 最长重复子数组(动态规划) 的区别在于此时不要求令一个数组中元素连续。 动态规划五步曲: (1)dp[i][j]含义: 截止到text1[i …...
16行代码采集原神官网角色全图+全语音
嗨害大家好鸭!我是小熊猫~ 本来是不玩原神的, 但是实在是经不住诱惑鸭~ 毕竟谁能拒绝可以爬树、炸鱼、壶里造房子、抓小动物、躲猫猫的对战游戏捏~ 准备工具 源码资料电子书:点击此处跳转文末名片获取 准备模块 import requests import re import ex…...
Unity(二)--通过简单例子了解UGUI几个常用对象操作(Text,Image,Button)
目录 文本框等UI对象的添加Canvas 画布给Canvas添加脚本,绑定要操作的对象文本框Text的使用图像Image的使用更换图片Type:显示图片相关按钮Button的使用过渡导航事件绑定文本框等UI对象的添加 Canvas 画布 所有的UI元素的父物体,。 当创建一个UI元素的时候,如果没有Canvas…...
手写一个文件上传demo
背景 最近闲来无事,同事闻了一下上传文件的基本操作,如何用文件流来实现一个文件的上传功能 基本概念 流(Stream)是指在计算机的输入输出操作中各部件之间的数据流动。可以按照数据传输的方向,将流可分为输入流和输出…...
通过 Apifox Echo 了解 Content-Length
Content-Length 用以指定 Body 的体积。响应头中的 Content-Length 指定 Response Body 的体积,请求头中的 Content-Length 指定 Request Body 的体积。 通过 Content-Length,HTTP 客户端/服务器端将会根据该头部计算出 Body 的大小。 请求头中的 Cont…...
ESP32设备驱动-CPU频率设置
CPU频率设置 文章目录 CPU频率设置1、ESP32的CPU频率介绍1.1 CPU时钟1.2 外设时钟2、CPU频率设置API3、软件准备4、硬件准备5、CPU频率设置实例5.1 CPU频率读取5.2 CPU频率设置在本文中,将介绍如何通过Arduino Core设置或更改ESP32 CPU时钟速度(频率)。 1、ESP32的CPU频率介…...
超声波风速风向传感器的技术参数
技术参数 风速 ◆ 启动风速:0.1m/s ◆ 测量范围:0~30m/s(可定制) ◆ 测量精度:(0.2m/s0.02*v)(v为真实风速) ◆ 分 辨 率:0.01m/s 风向 ◆ 测量范围:0~359 ◆ 测量精度&a…...
【vue2每日小知识】实现store中modules模块的封装与自动导入
🥳博 主:初映CY的前说(前端领域) 🌞个人信条:想要变成得到,中间还有做到! 🤘本文核心:省去我们store仓库中分模块时的需要每次导入index的问题 目录 【前言】在store中如何简…...
【Leetcode 剑指Offer】第3天 字符串(简单)
字符串剑指 Offer 05. 替换空格字符串构造函数和析构函数操作函数剑指 Offer 58 - II. 左旋转字符串剑指 Offer 05. 替换空格 题:实现一个函数,把字符串 s 中的每个空格替换成"%20"。 class Solution { public:string replaceSpace(string s…...
【双指针问题】LeetCode344、345、 844、283问题详解及代码实现
Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…...
Linux基础命令-netstat显示网络状态
文章目录 netstat 命令介绍 语法格式 基本参数 显示各列内容分析 1)netstat -a显示各列内容分析 2)netstat -r显示各列内容分析 3)netstat -i 显示各列内容分析 参考实例 1)显示系统网络状态的所有连接 2)…...
液氮恒温器(电学)T9015的技术规格
液氮型低温恒温器,利用液氮作为降温媒介,标准恒温器可实现快速降温至液氮温度(约20min),其工作原理是在恒温器内部液氮腔内装入液氮,通过调整控温塞与冷指的间隙来保持冷指的漏热稳定在一定值上,…...
字节跳动大规模实践埋点自动化测试框架设计
大数据时代,多数的web或app产品都会使用第三方或自己开发相应的数据系统,进行用户行为数据或其它信息数据的收集,在这个过程中,埋点是比较重要的一环。 埋点收集的数据一般有以下作用: 驱动决策:ABtest、漏…...
自动化测试优势和劣势
一、自动化测试概述 软件自动化测试是相对手工测试而存在的,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,节省人力、时间或硬件资源,提高测试效率。 二、自动化测试优势&劣…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
