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

kubernetes入门篇之创建一个nginx容器

上几篇讲了部署master和worker node 及网络插件calico, 现在开始实际运行一个容器。

1. 新建nginx.yaml文件

方式1:直接创建一个pod 和一个 service,一般不直接这样创建,该方式仅适用于测试或学习

apiVersion: v1
kind: Pod                 # 资源对象类型 为pod
metadata:name: nginxnamespace: dev      # 指定命令空间, 不然默认 default 命令空间labels:             # 标签app: nginx
spec:                 # 属性containers:         # 容器- name: nginximage: nginx:1.27.4      # 镜像源 imagePullPolicy: IfNotPresent  # 如果本地已有镜像,则不再拉取ports:- containerPort: 80  # 容器暴露的端口
---
apiVersion: v1
kind: Service                 # 资源类型为service
metadata:                     # 元数据name: nginx-servicenamespace: dev               # 命令空间,默认default,不建议使用默认
spec:type: NodePort             # 类型,ClusterIP,NodePort, LoadBalancerselector:                  # 选择器,选择哪个标签labelsapp: nginxports:                     # 端口- name: httpprotocol: TCP          # 协议类型 TCP,UDP,STCPport: 80               # Service 的端口(集群内访问)targetPort: 80         # 容器的端口(与 Pod 的 containerPort 一致)nodePort: 30002        # 节点的访问端口(范围 30000-32767

方式2: 使用 deployment 部署一个nginx service (推荐)

apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deploymentnamespace: dev
spec:replicas: 1     # 副本数selector:       # 选择器matchLabels:app: nginxtemplate:        # 模版metadata:      # 元数据labels:app: nginxspec:            # 属性containers:- name: nginx-containerimage: nginx:1.27.4     # 镜像源imagePullPolicy: IfNotPresentports:- containerPort: 80---apiVersion: v1
kind: Service
metadata:name: nginx-servicenamespace: dev
spec:selector:app: nginxports:- protocol: TCPport: 80targetPort: 80nodePort: 30002type: NodePort

2. 新建命令空间

如果不新建命令空间,将使用默认的命令空间default,这样不符合规范,容器一多也不方便管理

kubectl create namespace <name-space>  
如: kubectl create namespace dev  # 创建命名空间dev

上文使用的命令空间是dev

kubectl get ns #查看所有的命名空间
NAME              STATUS   AGE
default           Active   8d
dev               Active   12h
kube-node-lease   Active   8d
kube-public       Active   8d
kube-system       Active   8d
test              Active   11h

3. 在 worker node 拉取镜像到本地

nginx 官方镜像地址国内无法访问,如果本地没有就会从官方地址拉取,没有配置代理则会拉取失败。所以先下载到本地。

下载地址可以参数上篇calico的地址:

ctr -n k8s.io images pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:1.27.4-linuxarm64ctr -n k8s.io images tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:1.27.4-linuxarm64 docker.io/library/ngigx:1.27.4

4. 创建pod 和service

本文最后使用方式2创建,使用方式1时是测试镜像拉取出现的问题,后文会有记录。

kubectl create -f nginx.yaml    # 首次创建
或
kubectl apply -f nginx.yaml    # 更新

创建成功master节点查看:

[root@k8s-master test]# kubectl get pods -n dev
NAME                               READY   STATUS    RESTARTS   AGE
nginx-deployment-f57fb66d4-tqmcj   1/1     Running   0          6h47m[root@k8s-master test]# kubectl get service -n dev
NAME            TYPE       CLUSTER-IP        EXTERNAL-IP   PORT(S)        AGE
nginx-service   NodePort   192.168.127.107   <none>        80:30002/TCP   6h48m

5. 访问

masternode 节点输入localhost:30002
在这里插入图片描述
集群外的机器输入IP:30002 也能访问,这里就不截图了。

6. 踩坑

6.1 镜像地址

  1. imagePullPolicy 一定要配,不然就会从官方拉取,这里开始一直纳闷为啥本地拉取了镜像在创建pod时,状态一直是ImagePullBackOff
  2. yaml 文件中是image:nginx:xxx, 本地拉取镜像给镜像打tag必须是docker.io/library/nginx:xxx, 因为在拉取镜像时会在镜像名前默认添加docker.io/library/ 的前缀,这点很坑。

使用方式1, 因为不了解 6.1, 所以在修改镜像地址时,写的 image: dev/nginx:1.27.4,而tag 还是 docker.io/library/nginx:xxx, 导致拉取镜像失败。

查看pod 的详细信息报:

Normal   Scheduled  36s               default-scheduler  Successfully assigned dev/nginx to k8s-node1Normal   Pulled     5s (x5 over 35s)  kubelet            Container image "nginx:1.27.4" already present on machineWarning  Failed     5s (x5 over 35s)  kubelet            Error: failed to get image from containerd "sha256:9b1b7be1ffa607d40d545607d3fdf441f08553468adec5588fb58499ad77fe58": image "docker.io/dev/nginx:1.27.4": not found

6.2 nodeport 不存在

因为节点的访问端口设置的30002, 所以在查看podservice没问题后,在节点netstat -nlp | grep 30002 ,哦豁,超出认知范围,竟然找不到端口。
不知道为啥,然后在浏览器瞎试了一把,发现步骤5竟然没问题。
然后去找了一下资料,是被iptables 转发了。

检查 iptables 规则(查找 30002 端口相关规则)
iptables -t nat -L KUBE-NODEPORTS -n --line-numbers | grep 30002  
# 存在类似 KUBE-SVC-XXX tcp dpt:30002 的规则,说明流量通过 iptables 转发

相关文章:

kubernetes入门篇之创建一个nginx容器

上几篇讲了部署master和worker node 及网络插件calico&#xff0c; 现在开始实际运行一个容器。 1. 新建nginx.yaml文件 方式1&#xff1a;直接创建一个pod 和一个 service&#xff0c;一般不直接这样创建&#xff0c;该方式仅适用于测试或学习 apiVersion: v1 kind: Pod …...

回顾 | 2025香港Web3嘉年华:CertiK以创新技术定义安全未来

4月6日至9日&#xff0c;Web3安全巨头CertiK亮相2025香港Web3嘉年华。活动期间&#xff0c;CertiK不仅设立独立展位与广大Web3生态参与者深入互动&#xff0c;更通过高层次的技术交流与前沿研究成果展示&#xff0c;成为本届盛会备受瞩目的焦点。 耶鲁大学计算机科学系教授、C…...

HTML5的笔记

文章目录 1.HTML的概念1.1HTML的基本骨架 2.标签语法2.1标签的关系 3.标签3.1双标签3.1.1标题标签<h1~h6>3.1.2段落标签<p>3.1.3文本格式化标签3.1.4超链接标签<a>3.1.5音频和视频标签audio和<vedio>3.1.6列表标签3.1.7表格标签 3.2单标签3.2.1换行标签…...

LeetCode.2843. 统计对称整数的数目

统计对称整数的数目 题目解题思路思路1.v1Code 思路优化1.v2Code 思路优化1.v3Code复杂度分析 题目 2843. 统计对称整数的数目 给你两个正整数 low 和 high 。 对于一个由 2 * n 位数字组成的整数 x &#xff0c;如果其前 n 位数字之和与后 n 位数字之和相等&#xff0c;则认…...

Java常用工具算法-6--秘钥托管云服务3--微软zure Key Vault

Azure Key Vault是微软Azure提供的一项服务&#xff0c;旨在帮助用户安全地存储和管理敏感信息&#xff0c;如加密密钥、证书和密码等。它提供了一个集中的位置来保护这些重要资产&#xff0c;并且通过细粒度的访问控制和审计日志来确保安全性。 1、主要功能 &#xff08;1&a…...

表格开启聚光灯,查看数据不错行-Excel易用宝

面对如此庞大的一个表格&#xff0c;每次找数据就像走迷宫一样&#xff0c;有时看到了数据&#xff0c;眼神不好的小丽小手一抖还会选择到其他数据上&#xff0c;我问她个数据&#xff0c;她经常给我报个错的数据&#xff0c;我说怎么数据总是对不上号。 对于大表格防看错行这…...

解决java使用easyexcel填充模版后,高度不一致问题

自定义工具&#xff0c;可以通过获取上一行行高设置后面所以行的高度 package org.springblade.modules.api.utils;import com.alibaba.excel.write.handler.RowWriteHandler; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import com.alibaba.excel.wr…...

【25软考网工笔记】第二章 数据通信基础(1)信道特性 奈奎斯特 香农定理

一、信道特性 1. 数据通信概念 1&#xff09;通信系统的基本元素 通信目的: 传递信息。 信源: 产生和发送信息的一端&#xff0c;即信息发送的源头。 信宿: 接收信息的一端&#xff0c;即信息的目的地。 信道: 信源和信宿之间的通信线路&#xff0c;用于传输信息。 信号变换:…...

2024年React最新高频面试题及核心考点解析,涵盖基础、进阶和新特性,助你高效备战

以下是2024年React最新高频面试题及核心考点解析&#xff0c;涵盖基础、进阶和新特性&#xff0c;助你高效备战&#xff1a; 一、基础篇 React虚拟DOM原理及Diff算法优化策略 • 必考点&#xff1a;虚拟DOM树对比&#xff08;同级比较、Key的作用、组件类型判断&#xff09; …...

【Code】《代码整洁之道》笔记-Chapter11-系统

第11章 系统 “复杂要人命。它消磨开发者的生命&#xff0c;让产品难以规划、构建和测试。” 11.1 如何建造一个城市 你能自己掌管一切细节吗&#xff1f;大概不行。即便是管理一个既存的城市&#xff0c;也是靠单人能力无法做到的。不过&#xff0c;城市还是在运转&#…...

MySQL数据库编程总结

MySQL数据库编程总结 一、数据库概述 数据库定义 • 数据库是管理数据的软件系统&#xff0c;用于高效存储、管理和检索数据&#xff0c;减少冗余。 • 核心功能&#xff1a;通过SQL语言定义、操作数据&#xff0c;维护完整性和安全性。 常见数据库 • MySQL、Oracle、SQL Ser…...

MySQL学习笔记7【InnoDB】

Innodb 1. 架构 1.1 内存部分 buffer pool 缓冲池是主存中的第一个区域&#xff0c;里面可以缓存磁盘上经常操作的真实数据&#xff0c;在执行增删查改操作时&#xff0c;先操作缓冲池中的数据&#xff0c;然后以一定频率刷新到磁盘&#xff0c;这样操作明显提升了速度。 …...

HTML应用指南:利用GET请求获取全国汉堡王门店位置信息

在当今快节奏的都市生活中&#xff0c;餐饮品牌的门店布局不仅反映了其市场策略&#xff0c;更折射出消费者对便捷、品质和品牌认同的追求。汉堡王&#xff08;Burger King&#xff09;作为全球知名的西式快餐品牌之一&#xff0c;在中国市场同样占据重要地位。自进入中国市场以…...

STM32+EC600E 4G模块 与华为云平台通信

前言 由于在STM32巡回研讨会上淘了一块EC600E4G模块以及刚办完电信卡多了两张副卡&#xff0c;副卡有流量刚好可以用一下&#xff0c;试想着以后画一块ESP32板子搭配这个4G模块做个随身WIFI&#xff0c;目前先用这个模块搭配STM32玩一下云平顺便记录一下。 实验目的 实现STM…...

【Spring】IoC详解:五大类注解、类Bean的存储(上)

1.IoC本质 IoC&#xff08;Inversion of Control&#xff0c;控制反转&#xff09; 是Spring框架的灵魂&#xff0c;它颠覆了传统编程中“谁用谁造”的逻辑。简单来说&#xff0c;IoC就是把对象创建和管理的控制权从程序员手中“反转”给一个外部容器&#xff0c;让代码更灵活…...

图片压缩后失真?3款工具还原高清细节

在当今&#xff0c;图片的使用无处不在。为了便于存储和传输&#xff0c;我们常常会对图片进行压缩。然而&#xff0c;不少人发现&#xff0c;压缩后的图片往往变得模糊&#xff0c;失去了原本的清晰度和细节。那么&#xff0c;当遇到这种情况时&#xff0c;我们该如何将模糊的…...

2025中国移动云智算大会|彩讯企业级AI应用产品引关注

2025中国移动以“由云向智&#xff0c;共绘算网新生态”为主题&#xff0c;精心打造了一场智能科技展。中国移动携手生态伙伴带来涵盖算力、工具、模型、应用等覆盖多样化场景的AI应用服务&#xff0c;赋能生产方式、生活方式、社会治理方式的数智化解决方案&#xff0c;充分释…...

在新一代人工智能技术引领下的,相互联系、层层递进的明厨亮灶开源了

明厨亮灶视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。AI技术可以24小时…...

修图自由!自建IOPaint服务器,手机平板随时随地远程调用在线P图

前言&#xff1a;在这个人人都想当摄影师的时代&#xff0c;一张完美的照片简直比中彩票还难。但别担心&#xff0c;今天我来给大家揭秘一个超级神器——IOPaint&#xff01;这款免费开源的AI工具不仅能一键移除照片中的杂物和路人&#xff0c;还能智能扩展图片内容&#xff0c…...

PyTorch实现二维卷积与边缘检测:从原理到实战

本文通过PyTorch实现二维互相关运算、自定义卷积层&#xff0c;并演示如何通过卷积核检测图像边缘。同时&#xff0c;我们将训练一个卷积核参数&#xff0c;使其能够从数据中学习边缘特征。 1. 二维互相关运算的实现 互相关运算&#xff08;Cross-Correlation&#xff09;是卷…...

解决Server doesn‘t support Accept-Ranges问题

Cannot download differentially, fallback to full download: Error: Server doesnt support Accept-Ranges (response code 200) 解决方案 修改nginx配置文件支持Accept-Ranges&#xff08;范围请求&#xff09; server {...location ^~/ {default_type multipart/byterang…...

处理Excel表不等长时间序列用tsfresh提取时序特征

我原本的时间序列格式是excel表记录的&#xff0c;每一行是一条时间序列&#xff0c;时间序列不等长。 要把excel表数据读取出来之后转换成extract_features需要的格式。 1.读取excel表数据 import pandas as pd import numpy as np from tsfresh import extract_features mda…...

Linux __命令和权限

目录 一、几个指令 bc uname -r 指令 重要的几个热键 二、Shell命令以及运行原理 为什么有外壳 外壳是如何工作的 什么是操作系统&#xff0c;为什么要有操作系统 三、文件类型 1、Linux的文件类型 2、文件类型 四、用户 用户问题和切换问题 增加普通用户 root -&…...

IO流——字符输入输出流:FileReader FileWriter

一、文件字符输入流&#xff1a;FileReader 作用&#xff1a;以内存为基准&#xff0c;可以把文件中的数据以字符的形式读入到内存中去 public class Test5 {public static void main(String[] args) {try (Reader fr new FileReader("E:\\IDEA\\JavaCodeAll\\file-io-t…...

【大模型理论篇】DeepResearcher论文分析-通过在真实环境中的强化学习实现深度研究

1. 背景与问题 大模型&#xff08;LLMs&#xff09;配合网络搜索功能已经展现出在深度研究任务中的巨大潜力。然而&#xff0c;目前的方法主要依赖两种途径&#xff1a; 人工设计的提示工程&#xff08;Prompt Engineering&#xff09;&#xff1a;这种方法依靠手动设计的工作流…...

大数据(7.5)Kafka Edge在5G边缘计算中的革新实践:解锁毫秒级实时处理的无限可能

目录 一、5G时代边缘计算的算力革命1.1 传统架构的延迟困境1.2 5G网络特性与Kafka适配 二、Kafka Edge核心架构设计2.1 分层处理架构2.2 关键技术创新点2.2.1 协议优化2.2.2 轻量化存储引擎 三、5G场景落地实践3.1 智能工厂预测性维护3.2 全息远程医疗会诊 四、性能优化深度实践…...

【基于开源insightface的人脸检测,人脸识别初步测试】

简介 InsightFace是一个基于深度学习的开源人脸识别项目,由蚂蚁金服的深度学习团队开发。该项目提供了人脸检测、人脸特征提取、人脸识别等功能,支持多种操作系统和深度学习框架。本文将详细介绍如何在Ubuntu系统上安装和实战InsightFace项目。 目前github有非常多的人脸识…...

kafka怎么保证消息不被重复消费

在 Kafka 中&#xff0c;要保证消息不被重复消费&#xff0c;可从消费者端和生产者端分别采取不同策略&#xff0c;下面为你详细介绍&#xff1a; 消费者端实现幂等消费 幂等消费是指对同一条消息&#xff0c;无论消费多少次&#xff0c;产生的业务结果都是一样的。 业务层面…...

一个批量文件Dos2Unix程序(Microsoft Store,开源)

这个程序可以把整个目录的文本文件改成UNIX格式&#xff0c;源码是用C#写的。 目录 一、从Microsoft Store安装 二、从github获取源码 三、功能介绍 3.1 运行 3.2 浏览 3.3 转换 3.4 转换&#xff08;无列表&#xff09; 3.5 取消 3.6 帮助 四、源码解读 五、讨论和…...

Python及Javascript的map 、 filter 、reduce类似函数的对比汇总

A. 在Python中&#xff0c;map 和 filter 是两个非常有用的内置函数&#xff0c;它们分别用于对可迭代对象中的每个元素执行某种操作&#xff0c;并返回结果。在JavaScript中&#xff0c;虽然没有内置的 map 和 filter 函数&#xff0c;但是可以使用数组的 map() 和 filter() …...

Linux中OS的管理和进程的概念

一、OS的管理 1.1操作系统宏观的理解 OS的本质是一款进行资源管理的软件 图示&#xff1a; 1.2OS存在的意义 1.2.1计算机的分层式管理结构 最底层的硬件部分遵循“冯诺依曼体系” &#xff0c;每一种硬件都在驱动层中有着自己对应的“驱动程序” 在OS中&#xff0c;驱动管…...

Spring定时任务修仙指南:从@Scheduled到分布式调度的终极奥义

各位被Thread.sleep()和while(true)折磨的Spring道友们&#xff01;今天要解锁的是Spring生态自带的定时任务三件套——Scheduled、TaskScheduler、Async定时组合技&#xff01;无需引入外部依赖&#xff0c;轻松实现从简单定时到分布式调度的全场景覆盖&#xff01;准备好抛弃…...

Node.js多版本共存管理工具NVM(最新版本)详细使用教程(附安装包教程)

目录 前言 一、Nvm下载 二、Nvm安装 三、配置nodeJS 前言 NVM&#xff08;Node Version Manager&#xff09;是一个用于管理多个Node.js版本的工具&#xff0c;主要帮助开发者在同一设备上轻松安装、切换和卸载不同版本的Node.js&#xff0c;解决项目间版本冲突问题。 一、…...

管道魔法木马利用Windows零日漏洞部署勒索软件

微软披露&#xff0c;一个现已修复的影响Windows通用日志文件系统&#xff08;CLFS&#xff09;的安全漏洞曾被作为零日漏洞用于针对少数目标的勒索软件攻击中。 01 攻击目标与漏洞详情 这家科技巨头表示&#xff1a;"受害者包括美国信息技术&#xff08;IT&#xff09…...

Devops之Argo:Argo 是什么,和现在常用的Jenkins之间的区别

Argo CD&#xff08;Argo Continuous Delivery 的缩写&#xff09;是一款基于 GitOps 的声明式 Kubernetes 持续交付工具。它提供了一种以 Git 为中心的方法来管理和部署应用程序到 Kubernetes 集群。Argo CD 遵循 GitOps 的原则&#xff0c;即将应用程序的预期状态存储在 Git …...

从 60 FPS 掉帧到 7.6 倍提速Rust + WebAssembly 优化《生命游戏》的实战指南

一、构建 FPS 统计器&#xff1a;用 performance.now() 实时观察性能变化 要优化&#xff0c;就要先 测量。我们在 JavaScript 端添加一个 fps 对象&#xff0c;结合 performance.now() 来监控每一帧的耗时&#xff0c;并统计最近 100 帧的平均 FPS、最小 FPS、最大 FPS&#…...

jmeter 集成ZAP进行接口测试中的安全扫描 实现方案

以下是将 JMeter 集成 ZAP(OWASP Zed Attack Proxy)进行接口测试中安全扫描的实现方案: 1. 环境准备 JMeter 安装:从 JMeter 官方网站(https://jmeter.apache.org/download_jmeter.cgi)下载并安装 JMeter,确保其版本稳定。ZAP 安装:从 ZAP 官方网站(https://www.zapr…...

Hyperlane 文件分块上传服务端

Hyperlane 文件分块上传服务端&#xff1a;高效、可靠、易用的文件上传解决方案 引言 在现代 Web 开发中&#xff0c;文件上传是许多应用的核心功能之一。然而&#xff0c;随着文件大小的增加和网络环境的复杂性&#xff0c;传统的单次文件上传方式已经难以满足需求。Hyperla…...

BT面板docker搭建excalidraw遇到的问题

1.傻瓜式拉取镜像 2.点击创建容器 3.暴露端口 4.放行端口和服务器安全组&#xff0c;如果用的是轻量型服务器&#xff0c;那就关闭防火墙 下面放图...

Qt之OpenGL使用Qt封装好的着色器和编译器

代码 #include "sunopengl.h"sunOpengl::sunOpengl(QWidget *parent) {}unsigned int VBO,VAO; float vertices[]{0.5f,0.5f,0.0f,0.5f,-0.5f,0.0f,-0.5f,-0.5f,0.0f,-0.5f,0.5f,0.0f };unsigned int indices[]{0,1,3,1,2,3, }; unsigned int EBO; sunOpengl::~sunO…...

【仿Mudou库one thread per loop式并发服务器实现】项目介绍+前置技术知识点

HTTP协议模块实现 1. 项目实现的目标2. 项目储备知识2.1 HTTP服务器2.2 Reactor模型 3. 功能模块划分3.1 SERVER模块3.1.1 Buffer模块3.1.2 Socket模块3.1.3 Channel模块3.1.4 Poller模块3.1.5 EventLoop模块3.1.6 Connection模块3.1.7 7. Acceptor模块3.1.8 TimerQueue模块3.1…...

Open Interpreter:重新定义人机交互的开源革命

引言 在人工智能技术蓬勃发展的今天&#xff0c;人机交互的方式正经历着前所未有的变革。Open Interpreter&#xff0c;作为一个开源项目&#xff0c;正在重新定义我们与计算机的互动方式。它允许大型语言模型&#xff08;LLMs&#xff09;在本地运行代码&#xff0c;通过自然…...

Shell编程之条件语句

目录 一.条件测试操作 1.文件测试 2.整数值比较 3.字符串比较 4.逻辑测试 二&#xff1a;if条件语句 1.if语句的结构 &#xff08;1&#xff09;单分支if语句 &#xff08;2&#xff09;双分支if语句 &#xff08;3&#xff09;多分支if语句 2.if语句应用示例 &…...

Python编程快速上手 让繁琐工作自动化笔记

编程基础 字符串使用单引号...

高性能文件上传服务

高性能文件上传服务 —— 您业务升级的不二选择 在当今互联网数据量激增、文件体积日益庞大的背景下&#xff0c;高效、稳定的文件上传方案显得尤为重要。我们的文件分块上传服务端采用业界领先的 Rust HTTP 框架 Hyperlane 开发&#xff0c;凭借其轻量级、低延时和高并发的特…...

【从零开始学习JVM | 第二篇】HotSpot虚拟机对象探秘

对象的创建 1.类加载检查 虚拟机遇到一条new的指令&#xff0c;首先去检查这个指令的参数能否在常量池中定位到这个类的符号引用&#xff0c;并且检查这个符号引用代表的类是否已被加载过、解析和初始化过。如果没有&#xff0c;那必须先执行类的加载过程。 2.分配内存 在类…...

浅谈前端开发中的 npm、cnpm、pnpm、yarn各自特点

在前端开发中的 npm、cnpm、pnpm、yarn 等工具都是包管理器&#xff08;Package Manager&#xff09;&#xff0c;用于安装/更新/卸载 JavaScript 项目的依赖。 下面我详细地给你梳理下这些包管理器的作用、特点和适用场景&#x1f447; 一. npm&#xff08;Node Package Mana…...

【数据结构】包装类和泛型

目录 1.包装类 1.1 基本数据类型和对应的包装类 1.2 装箱和拆箱 1.3 自动装箱和自动拆箱 2.泛型 2.1泛型的概念 2.2引出泛型 3.语法 4.泛型类的使用 5.泛型的上界 1.包装类 在Java中&#xff0c;由于基本类型不是继承自Object&#xff0c;为了在泛型代码中可以支持基…...

红帽9运行容器一

运行容器&#xff1a;容器概念&#xff0c;构建&#xff0c;存储和运行容器的核心技术&#xff08;用户资源管理的控制组&#xff0c;进程隔离的命名空间&#xff0c;加强安全边界的SELinux和Seccomp&#xff09; 软件运行需要环境&#xff0c;系统库&#xff0c;配置文件和服…...

使用poi+itextpdf把word转成pdf

使用 Apache POI 和 iTextPDF 将 Word 转换为 PDF 需要分两步操作&#xff1a;先用 POI 读取 Word 内容&#xff0c;再用 iText 生成 PDF。 apache poi官方文档:Apache POI™ - Javadocs 以下是详细的代码实现示例&#xff1a; 环境准备 在 pom.xml 中添加依赖&#xff1a; …...