Update nginx to 1.30 stable, add IPVS deprecation note

This commit is contained in:
yeasy
2026-05-02 18:18:48 +00:00
parent 4cb91a75f3
commit b148d9efa9
10 changed files with 23 additions and 19 deletions
+3 -3
View File
@@ -261,9 +261,9 @@ someuser/myapp # ⚠️ 需要评估
```bash
## 准备一个你有写权限的镜像地址
$ export IMAGE=<你的仓库名>/nginx:1.27
$ docker pull nginx:1.27
$ docker tag nginx:1.27 $IMAGE
$ export IMAGE=<你的仓库名>/nginx:1.30
$ docker pull nginx:1.30
$ docker tag nginx:1.30 $IMAGE
$ docker push $IMAGE
## 生成签名密钥(会生成 cosign.key / cosign.pub
+1 -1
View File
@@ -4,7 +4,7 @@
> **版本号最佳实践**
>
> - **永远指定版本号**避免使用 `latest` 标签应指定具体的版本 `ubuntu:24.04``nginx:1.27`以确保镜像内容稳定一致
> - **永远指定版本号**避免使用 `latest` 标签应指定具体的版本 `ubuntu:24.04``nginx:1.30`以确保镜像内容稳定一致
> - **在生产环境使用摘要**优先使用镜像摘要SHA256而非标签 `nginx@sha256:abc123...`因为摘要不可变
> - **定期评估依赖**即使指定了版本号仍应定期检查依赖的基础镜像是否有安全更新
+3 -3
View File
@@ -10,7 +10,7 @@
现在让我们以定制一个 Web 服务器为例子来讲解镜像是如何构建的
> **版本提示**以下示例中 `nginx` 镜像使用默认 `latest` 标签生产环境建议指定具体版本号 `nginx:1.27`以避免镜像更新带来的不兼容性
> **版本提示**以下示例中 `nginx` 镜像使用默认 `latest` 标签生产环境建议指定具体版本号 `nginx:1.30`以避免镜像更新带来的不兼容性
```bash
$ docker run --name webserver -d -p 8080:80 nginx
@@ -89,11 +89,11 @@ sha256:07e33465974800ce65751acc279adc6ed2dc5ed4e0838f8b86f0c87aa1795214
$ docker image ls nginx
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx v2 07e334659748 9 seconds ago 181.5 MB
nginx 1.27 05a60462f8ba 12 days ago 181.5 MB
nginx 1.30 05a60462f8ba 12 days ago 181.5 MB
nginx latest e43d811ce2f4 4 weeks ago 181.5 MB
```
> **版本说明**上面示例中 `nginx:1.27` 代表 1.27 系列的最新 patch 版本际应用中应根据需求选择确切的版本号而不是盲目使用 `latest`
> **版本说明**上面示例中 `nginx:1.30` 代表 1.30 系列的最新 patch 版本际应用中应根据需求选择确切的版本号而不是盲目使用 `latest`
我们还可以用 `docker history` 具体查看镜像内的历史记录例如先执行 `docker history nginx:v2`再对比 `docker history nginx:latest`就能看到我们刚刚提交出来的新层
+1 -1
View File
@@ -26,7 +26,7 @@ $ touch Dockerfile
```
其内容为
> **版本提示**下面示例中 `FROM nginx` 使用的是 `latest` 标签在实际应用中应使用明确的版本号 `FROM nginx:1.27`以确保 Dockerfile 的可重现性和稳定性
> **版本提示**下面示例中 `FROM nginx` 使用的是 `latest` 标签在实际应用中应使用明确的版本号 `FROM nginx:1.30`以确保 Dockerfile 的可重现性和稳定性
```docker
FROM nginx
+1 -1
View File
@@ -14,7 +14,7 @@
- **镜像标签约定**
- `latest` `v1.0.0` 带标签的自定义镜像示例中指定具体版本
- `24.04``8.4`官方镜像的稳定版本分支
- 生产环境建议指定确版本号 `nginx:1.24.0``mysql:8.4.4`而非仅大版本号
- 生产环境建议指定确版本号 `nginx:1.30.0``mysql:8.4.4`而非仅大版本号
* [启动容器](5.1_run.md)
* [守护态运行](5.2_daemon.md)
+3 -3
View File
@@ -158,15 +158,15 @@ $ docker build --build-arg NODE_VERSION=18 -t myapp .
```docker
## 版本集中管理
ENV NGINX_VERSION=1.25 \
NODE_VERSION=20 \
ENV NGINX_VERSION=1.30 \
NODE_VERSION=22 \
PYTHON_VERSION=3.12
RUN apt-get install nginx=${NGINX_VERSION}
## 版本分散在各处
RUN apt-get install nginx=1.25
RUN apt-get install nginx=1.30
```
#### 2. 不要存储敏感信息
+2 -2
View File
@@ -125,8 +125,8 @@ $ docker build --build-arg ALPINE_VERSION=3.19 .
#### 2. 设置软件版本
```docker
# 使用次版本号 (1.25) 而非完整版本号 (1.25.0)以便自动更新到最新补丁版本
ARG NGINX_VERSION=1.25
# 使用次版本号 (1.30) 而非完整版本号 (1.30.0)以便自动更新到最新补丁版本
ARG NGINX_VERSION=1.30
RUN curl -fsSL https://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz | tar -xz
```
+4 -2
View File
@@ -138,12 +138,14 @@ $ sysctl --system
为了让 kubelet 正确运行我们需要对其进行一些必要的配置
#### 修改 `kubelet.service`
#### 修改 `kubelet.service`可选IPVS 模式
> **注意**kube-proxy IPVS 模式已在 Kubernetes 1.35 中被标记为弃用并计划在后续版本中移除新部署建议使用默认的 iptables 模式或 nftables 模式Kubernetes 1.31+ 可用以下 IPVS 配置仅供需要兼容旧环境的场景参考
`/etc/systemd/system/kubelet.service.d/10-proxy-ipvs.conf` 写入以下内容
```bash
# 启用 ipvs 相关内核模块
# 启用 ipvs 相关内核模块已弃用建议迁移至 nftables
[Service]
ExecStartPre=-/sbin/modprobe ip_vs
+4 -2
View File
@@ -169,12 +169,14 @@ $ sysctl --system
为了让 kubelet 正确运行我们需要对其进行一些必要的配置
#### 修改 `kubelet.service`
#### 修改 `kubelet.service`可选IPVS 模式
> **注意**kube-proxy IPVS 模式已在 Kubernetes 1.35 中被标记为弃用并计划在后续版本中移除新部署建议使用默认的 iptables 模式或 nftables 模式Kubernetes 1.31+ 可用以下 IPVS 配置仅供需要兼容旧环境的场景参考
`/etc/systemd/system/kubelet.service.d/10-proxy-ipvs.conf` 写入以下内容
```bash
# 启用 ipvs 相关内核模块
# 启用 ipvs 相关内核模块已弃用建议迁移至 nftables
[Service]
ExecStartPre=-/sbin/modprobe ip_vs
+1 -1
View File
@@ -4,7 +4,7 @@
`etcd` 基于 `Go` 语言实现因此用户可以从[项目主页](https://github.com/etcd-io/etcd)下载源代码自行编译,也可以下载编译好的二进制文件,甚至直接使用制作好的 `Docker` 镜像文件来体验。
> 注意etcd 官方仅维护最新两个次版本当前为 3.5 3.6本章示例基于 etcd `3.5.x` 版本编写etcd 3.6.x 可用于新部署请访问 [etcd 官方发布页](https://github.com/etcd-io/etcd/releases) 获取最新版本。
> 注意etcd 官方仅维护最新两个次版本当前为 3.5 3.6etcd 3.4 已于 2026 5 月结束支持EOL仍在使用 3.4 的用户应尽快升级本章示例基于 etcd `3.5.x` 版本编写etcd 3.6.x 可用于新部署请访问 [etcd 官方发布页](https://github.com/etcd-io/etcd/releases) 获取最新版本。
### 15.2.1 二进制文件方式下载