RockyLinux 9.5 部署 Kubernetes 集群(Containerd)
一、资源下载1、阿里云官方镜像站Rocky Linux 9.5 镜像地址https://mirrors.aliyun.com/rockylinux/9.5/isos/x86_64/Rocky-9.5-x86_64-minimal.iso2、Calico 3.28.41百度网盘下载链接:Calico images:链接: https://pan.baidu.com/s/137bmlXkxgDrlo4ot41ADJw 提取码: 9hvvcalico-v3.28.4.yaml链接: https://pan.baidu.com/s/1Fn00SHrPpq34gy4mT6BY1A 提取码: nr553、dashboard 2.7.0通过网盘分享的文件recommended.yaml链接: https://pan.baidu.com/s/1LhhFs4z9T9DyImmWYzvU0Q 提取码: h42p二、环境准备1、关闭防火墙# 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 查看防火墙状态 firewall-cmd --state2、禁用swap# 临时关闭 swapoff -a # 永久关闭编辑 /etc/fstab 文件找到包含 swap 的行(如果有的话)并在行首添加 # 来注释掉该行 sed -ri s/.*swap.*/#/ /etc/fstab3、关闭 selinux# 立即生效临时 和 修改配置永久 sudo setenforce 0 sudo sed -i s/^SELINUX.*/SELINUXpermissive/ /etc/selinux/config # 本地部署建议直接关闭 selinux 或将其设置为宽容模式SELINUXpermissive # 生产环境建议设置为宽容模式。但如果涉及金钱或核心机密或者追求极致安全将模式设为 EnforcingSELinux 的三种状态状态意思命令实际表现Enforcing (强制)开启setenforce 1严格执法。发现违规操作直接拦截并记录日志。Permissive (宽容)半开启setenforce 0睁一只眼闭一只眼。发现违规不拦截但会记录在日志里。Disabled (禁用)彻底关闭无需改配置文件重启完全不运行。内核不再加载 SELinux 策略也不打标签。4、开启 bridge 网桥过滤# 创建一个配置文件 /etc/sysctl.d/k8s.conf并通过 sysctl 配置内核参数 cat /etc/sysctl.d/k8s.conf EOF net.bridge.bridge-nf-call-ip6tables 1 net.bridge.bridge-nf-call-iptables 1 net.ipv4.ip_forward 1 EOF # 加载 br_netfilter模块 # 由于开启bridge功能需要加载br_netfilter模块来允许在bridge设备上的数据包经过iptables防火墙处理 modprobe br_netfilter # 使配置生效 sysctl -p /etc/sysctl.d/k8s.conf # 查看是否加载成功 lsmod | grep br_netfilter #会输出以下内容 br_netfilter 32768 0 bridge 303104 1 br_netfilter5、设置 hostname# 配置集群之间本地解析集群在初始化时需要能够解析主机名 # 不配置的话初始化集群会有警告信息但不影响最终执行结果 # master node1 node2 都需要执行 echo -e 192.168.31.106 master\n192.168.31.107 node1\n192.168.31.108 node2 | sudo tee -a /etc/hosts6、集群规划主机名IP角色配置master192.168.31.106管理节点2CPU/4G内存/20Gnode1192.168.31.107工作节点2CPU/4G内存/20Gnode2192.168.31.108工作节点2CPU/4G内存/20Gdocker harbor192.168.31.109镜像仓库2CPU/4G内存/20G三、Containerd1、安装 Containerd 软件包# 添加阿里云 docker-ce 仓库 dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 列出当前系统中所有可安装的 containerd 版本并按照版本号从高到低进行排序同时显示重复的版本。 dnf list containerd.io --showduplicates | sort -r # 安装最新版本 containerd也可以指定版本安装dnf install -y containerd.io-1.6.20-3.1.el9.x86_64 dnf install -y containerd.io-1.7.29-1.el9.x86_64 # 生成containerd配置文件 containerd config default | tee /etc/containerd/config.toml # 启用 Cgroup 用于限制进程的资源使用量如CPU、内存资源 sed -i s#SystemdCgroup false#SystemdCgroup true# /etc/containerd/config.toml # 替换文件中 pause 镜像的下载地址为阿里云仓库 sed -i -E s#sandbox_image (registry\.k8s\.io|k8s\.gcr\.io)/pause:[0-9.]#sandbox_image registry.aliyuncs.com/google_containers/pause:3.9# /etc/containerd/config.toml # 指定 contaienrd 接口文件地址在k8s环境中kubelet 通过 containerd.sock 文件与 containerd 进行通信 cat EOF | tee /etc/crictl.yaml runtime-endpoint: unix:///var/run/containerd/containerd.sock image-endpoint: unix:///var/run/containerd/containerd.sock timeout: 10 debug: false EOF # 启动 containerd 并设置随机自启 systemctl enable containerd --now2、配置镜像加速器# 配置 containerd 的镜像加速 # 创建文件夹 sudo mkdir -p /etc/containerd/certs.d/docker.io # /etc/containerd/certs.d/docker.io 目录下添加 hosts.toml 文件内容如下 server https://registry-1.docker.io [host.https://docker.m.daocloud.io] capabilities [pull, resolve] [host.https://docker.1ms.run] capabilities [pull, resolve] [host.https://docker.1panel.live] capabilities [pull, resolve] [host.https://registry-1.docker.io] capabilities [pull, resolve] # 检查 containerd 主配置 /etc/containerd/config.toml # 找到 config_path 添加 /etc/containerd/certs.d [plugins.io.containerd.grpc.v1.cri.registry] config_path /etc/containerd/certs.d # 重启 containerd sudo systemctl restart containerd四、Kubernetes1、安装 kubeadm / kubectl / kubelet# 配置 kubeadm 仓库使用阿里云YUM源 cat /etc/yum.repos.d/k8s.repo EOF [kubernetes] nameKubernetes baseurlhttps://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled1 gpgcheck1 repo_gpgcheck1 gpgkeyhttps://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF # 查看可安装的版本 dnf list --showduplicates kubeadm kubelet kubectl # 直接安装默认安装最新版 dnf install -y kubeadm kubelet kubectl # 选择版本安装 dnf install -y kubeadm-1.28.2-0 kubelet-1.28.2-0 kubectl-1.28.2-0 # 设置 kubelet 使用 systemd 作为 cgroup 驱动用于限制、控制和隔离进程组的资源使用如 CPU、内存、磁盘 I/O 等。 tee /etc/sysconfig/kubelet EOF KUBELET_EXTRA_ARGS--cgroup-driversystemd EOF # 设置 kubelet 开机自启动 # kubeadm 和 kubectl 是命令行工具并非后台服务不需要设置开机自启动 # kubelet 是一个守护进程daemon负责管理 Pod 和容器的生命周期需要始终运行以确保节点正常工作 systemctl enable kubelet2、集群初始化# 在 master 节点生成初始化集群的配置文件 kubeadm config print init-defaults kubeadm-config.yaml # 打开配置文件修改以下内容 # 本机的IP地址 advertiseAddress: 192.168.31.106 # 本机名称 name: master #集群镜像下载地址修改为阿里云 imageRepository: registry.aliyuncs.com/google_containers # 通过配置文件初始化集群一个 master 节点 kubeadm init --config kubeadm-config.yaml # 如果打算配置多个 master 节点执行下面命令 kubeadm init --config kubeadm-config.yaml --upload-certs # 根据集群初始化后的提示master节点直接执行 mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config # node 节点加入集群的命令初始后会一并输出放在 node 节点执行 kubeadm join 192.168.31.106:6443 --token abcdef.0123456789abcdef \ --discovery-token-ca-cert-hash sha256:cc364e5e0d15d81a9ee2ca0cafd987a77ca8563366d19e16f67e53a46a52e156 # 根据提示将node节点加入集群加入成功后在master节点验证 [rootmaster ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION master NotReady control-plane 3m31s v1.28.2 node1 NotReady none 12s v1.28.2 node2 NotReady none 89s v1.28.2 # 如果哪个节点出现问题可以使用下列命令重置当前节点后再执行加入集群的命令 kubeadm reset # 在 maste 节点执行获取子节点加入集群令牌将输出命令直接在 node 节点执行 kubeadm token create --print-join-command3、部署集群网络 Calico方式一# master 节点下载 Calico 文件 wget https://raw.githubusercontent.com/projectcalico/calico/v3.28.4/manifests/calico.yaml # 创建 Calico 网络 kubectl apply -f calico.yaml # 查看 Calico Pod 状态是否为 Running [rootmaster ~]# kubectl get pods -n kube-system NAME READY STATUS RESTARTS AGE calico-kube-controllers-9d57d8f49-xv6lh 1/1 Running 27 (31m ago) 129m calico-node-66shx 1/1 Running 2 (5h40m ago) 25h calico-node-gjwjc 1/1 Running 2 (5h40m ago) 25h calico-node-xhnxw 1/1 Running 2 (5h35m ago) 25h coredns-6554b8b87f-cw5tx 1/1 Running 0 129m coredns-6554b8b87f-l5pkj 1/1 Running 0 129m etcd-master 1/1 Running 2 (5h40m ago) 26h kube-apiserver-master 1/1 Running 3 (30m ago) 26h kube-controller-manager-master 1/1 Running 3 (31m ago) 26h kube-proxy-q5flt 1/1 Running 2 (5h40m ago) 26h kube-proxy-qcxhp 1/1 Running 2 (5h35m ago) 26h kube-proxy-vw9dm 1/1 Running 2 (5h40m ago) 26h kube-scheduler-master 1/1 Running 3 (31m ago) 26h # 如果失败可查看日志 kubectl describe pod calico-kube-controllers-9d57d8f49-xv6lh -n kube-system方式二# 必选组件 # 1、calico-node.tar # Calico 的核心组件之一在每个节点包括单节点集群上运行。 # 它负责配置网络接口、路由和防火墙规则确保 Pod 之间的网络连接和隔离。 # 2、calico-cni.tar # 提供 Container Network Interface (CNI) 插件支持用于为容器分配 IP 地址并配置网络接口。 # 3、calico-kube-controllers.tar # 监听 Kubernetes API Server 的事件同步 Kubernetes 的网络策略到 Calico 的数据平面。 # 尽管在单节点集群中可能不使用复杂的网络策略但该控制器有助于维护集群的网络状态一致性。 # 可选组件 # calico-typha.tarTypha 主要用于大规模集群中减轻 kube-apiserver 的负担。在单节点集群中通常不需要此组件。 # calico-flannel-migration-controller.tar, calico-pod2daemon.tar, calico-dikastes.tar, calico-key-cert-provisioner.tar这些组件主要适用于特定需求或迁移场景在标准单节点集群部署中通常是不必要的。 # 列出所有可用的命名空间 ctr namespaces list # 下载上面提供的 Calico 3.28.4解压缩 tar -xzvf calico-3.28.4.tar.gz # 将必选的三个镜像导入到 containerd 中 # 只在 master 导入就可以 ctr -n k8s.io images import calico-cni.tar ctr -n k8s.io images import calico-node.tar ctr -n k8s.io images import calico-kube-controllers.tar # 执行 kubectl apply -f calico.yaml4、crictl 常用命令# crictl 是 Kubernetes 容器运行时接口CRI的命令行工具用于与支持 CRI 的容器运行时如 containerd 或 CRI-O交互。它可以在 Kubernetes 环境中调试和管理容器、镜像和 Pod # crictl 全称可以理解为 Container Runtime Interface Control # 1、镜像管理 # 拉取镜像 crictl pull image-name # 示例 sudo crictl pull docker.io/nginx:latest # 列出本地镜像 sudo crictl images # 删除镜像 sudo crictl rmi image-id # 2、容器管理 # 列出正在运行的容器 sudo crictl ps # 列出所有容器包括已停止的 sudo crictl ps -a # 启动容器 sudo crictl start container-id # 停止容器 sudo crictl stop container-id # 删除容器 sudo crictl rm container-id # 查看容器日志 sudo crictl logs container-id # 实时查看日志 sudo crictl logs -f container-id5、kubernetes 证书续订# 检查 API Server 证书有效期 openssl x509 -noout -dates -in /etc/kubernetes/pki/apiserver.crt # 检查所有 kubeadm 证书 # ca 证书是 10 年其它都是 1 年 [rootmaster ~]# kubeadm certs check-expiration [check-expiration] Reading configuration from the cluster... [check-expiration] FYI: You can look at this config file with kubectl -n kube-system get cm kubeadm-config -o yaml CERTIFICATE EXPIRES RESIDUAL TIME CERTIFICATE AUTHORITY EXTERNALLY MANAGED admin.conf Apr 23, 2026 09:03 UTC 364d ca no apiserver Apr 23, 2026 09:03 UTC 364d ca no apiserver-etcd-client Apr 23, 2026 09:03 UTC 364d etcd-ca no apiserver-kubelet-client Apr 23, 2026 09:03 UTC 364d ca no controller-manager.conf Apr 23, 2026 09:03 UTC 364d ca no etcd-healthcheck-client Apr 23, 2026 09:03 UTC 364d etcd-ca no etcd-peer Apr 23, 2026 09:03 UTC 364d etcd-ca no etcd-server Apr 23, 2026 09:03 UTC 364d etcd-ca no front-proxy-client Apr 23, 2026 09:03 UTC 364d front-proxy-ca no scheduler.conf Apr 23, 2026 09:03 UTC 364d ca no CERTIFICATE AUTHORITY EXPIRES RESIDUAL TIME EXTERNALLY MANAGED ca Apr 21, 2035 04:54 UTC 9y no etcd-ca Apr 21, 2035 04:54 UTC 9y no front-proxy-ca Apr 21, 2035 04:54 UTC 9y no # 续订所有证书 kubeadm certs renew all # 重启控制平面组件静态 Pod systemctl restart kubelet五、部署 dashboard# 下载 Dashboard v2.7.0 官方 YAML 文件 wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml # image: kubernetesui/dashboard:v2.7.0 替换为 # image: registry.cn-hangzhou.aliyuncs.com/google_containers/dashboard:v2.7.0 # image: kubernetesui/metrics-scraper:v1.0.8 替换为 # image: registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-scraper:v1.0.8 # 部署到集群 kubectl apply -f recommended.yaml # 验证 Pod 状态 kubectl get pods -n kubernetes-dashboard # 正常输出应显示 kubernetes-dashboard Pod 状态为 Running [rootmaster ~]# kubectl get pods -n kubernetes-dashboard NAME READY STATUS RESTARTS AGE dashboard-metrics-scraper-7c85965fd4-2ww7m 1/1 Running 0 26s kubernetes-dashboard-7d8bbf6bb6-czqrc 1/1 Running 0 26s # kubectl edit 命令并不会直接编辑一个文件 # 而是通过临时打开一个文本编辑器比如 vi、nano 或系统默认的编辑器来修改 Kubernetes 集群中存储的对象配置。 # 这些对象的数据实际上存储在 Kubernetes 的 etcd 数据库中而不是以文件的形式存储在本地。 # 修改 SVC 访问模式目的是为了从集群外部访问 Kubernetes Dashboard 服务 # 将 ClusterIP 改为 NodePort kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard # 查看 SVC 访问模式是否修改 # svc 是 Service 的简称没修改之前 TYPE 全都是 ClusterIP [rootmaster ~]# kubectl get svc -n kubernetes-dashboard NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dashboard-metrics-scraper ClusterIP 10.108.39.200 none 8000/TCP 3m47s kubernetes-dashboard NodePort 10.105.95.211 none 443:31950/TCP 3m47s # 创建 dashboard-admin.yaml apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard # 必须与 Dashboard 所在的命名空间一致 --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin # 赋予集群管理员权限 subjects: - kind: ServiceAccount name: admin-user namespace: kubernetes-dashboard # 应用配置 kubectl apply -f dashboard-admin.yaml # 获取 Token 登录 Dashboard kubectl -n kubernetes-dashboard create token admin-user # 访问 dashboard获取 Token 即可登录查看 https://192.168.31.106:31950六、部署 Docker Harbor点击查看部署教程七、部署项目1、获取 kubernetes 集群可用的镜像# 在 docker harbor 服务器上拉取一个 nginx 镜像然后上传到 docker harbor # 登录到私有镜像仓库输入账号密码 docker login i.dd.com:443 # 拉取 nginx:latest 镜像到本地 docker pull nginx:latest # 为本地的 nginx:latest 镜像创建一个新的标签tag并将其标记为私有镜像仓库的路径 docker tag nginx:latest i.dd.com:443/nginx/nginx:1.0 # 将本地标记为 i.dd.com:443/nginx/nginx:1.0 的镜像推送到私有镜像仓库 docker push i.dd.com:443/nginx/nginx:1.02、存储访问私有 Docker Harbor 镜像仓库的认证信息# master 节点创建docker registry secret kubectl create secret docker-registry tt \ --docker-serveri.dd.com:443 \ --docker-usernameadmin \ --docker-passwordHarbor12345 \ --docker-emailjcnexample.com # 列出命名空间中的所有 Secret kubectl get secrets # 如果你想要查看特定命名空间中的 Secret请加上 -n 参数 kubectl get secrets -n namespace # 查看 secret 详细信息 kubectl get secret tt --outputyaml3、配置 nginx-test.yaml# 新建一个 nginx-test.yaml 文件放到 master 节点根目录下内容如下 --- apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: i.dd.com:8443/nginx/mynginx:1.0 ports: - containerPort: 80 imagePullPolicy: Always env: - name: ENVIRONMENT value: production imagePullSecrets: - name: tt --- # Service apiVersion: v1 kind: Service metadata: name: nginx-service spec: type: NodePort selector: app: nginx ports: - name: http protocol: TCP port: 80 targetPort: 80 nodePort: 30001 --- # Horizontal Pod Autoscaler apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: nginx-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: nginx-deployment minReplicas: 1 maxReplicas: 10 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 50 # 根据 CPU 利用率自动扩展或缩减副本数4、将 Harbor 中的测试项目 nginx 部署到集群中# 将资源配置应用到 Kubernetes 集群中 kubectl apply -f nginx-test.yaml # 查看 pod也可以登陆 dashboard 查看 [rootmaster ~]# kubectl get pods NAME READY STATUS RESTARTS AGE nginx-deployment-5dfc977c65-7kmnf 1/1 Running 0 15s nginx-deployment-5dfc977c65-7lmhp 1/1 Running 0 15s # 浏览器访问 http://IP:30001 即可查看项目 nginx-test

相关新闻

分库分表实战:如何让数据库“分身有术“?

分库分表实战:如何让数据库“分身有术“?

【785】分库分表实战:如何让数据库"分身有术"? 想象一下: 你是一家超市的仓库管理员,仓库里堆了1000万件商品。 有一天老板说:“仓库太小了,要扩容!” 你看了看,发现问题不是仓库太小,而是所有商品都堆在一个货架上,找东西要翻遍整个仓库。 分库分表就…

2026/9/19 22:06:35 阅读更多 →
Spring @Transactional 事务的7大传播特性

Spring @Transactional 事务的7大传播特性

Spring的7大传播特性, 并且我画了图,便于李姐, 自我感觉还不错, 底部还有对领导的吐槽, 下次面试问我对加班的看法, 可以回复 mandatory, NEVER required 默认的 使用当前的事务, 如果当前没有事务,则自己新建一个事务,子方法是必须运行在一个事务中的, 如果当前存在事务,则…

2026/9/25 19:34:26 阅读更多 →
数据库读写分离:如何让“读“和“写“分工合作?

数据库读写分离:如何让“读“和“写“分工合作?

【784】数据库读写分离:如何让"读"和"写"分工合作? 你有没有这种感觉: 餐厅中午高峰期,点菜的服务员和结账的收银都挤在一个窗口,排队排到崩溃。 后来老板把两个岗位分开——前厅专门点菜,后台专门结账,效率立刻翻倍。 数据库读写分离,就是这个…

2026/9/13 15:51:08 阅读更多 →

最新新闻

自采四分类运动想象BCI数据集解析:从EEGLAB预处理到实时脑控算法落地

自采四分类运动想象BCI数据集解析:从EEGLAB预处理到实时脑控算法落地

简介:适用于2025世界机器人大赛BCI脑控机器人大赛MetaBCI创新应用开发赛项的开发者与研究者,这份压缩包围绕自采四分类运动想象数据集,覆盖脑电信号采集、预处理、特征提取、分类器训练及实时脑控算法优化全流程。压缩包共64个文件&#xff0…

2026/9/26 16:42:46 阅读更多 →
基于机器学习的异常驾驶检测:从OBD数据到隔离森林完整流程

基于机器学习的异常驾驶检测:从OBD数据到隔离森林完整流程

简介:一套面向机器学习与智能交通方向学习者的异常驾驶检测项目,聚焦驾驶行为中的异常模式识别,提供可运行的源码与说明书,便于按需二次修改。压缩包内共有六个文件,以三个交互式编程笔记为主,配合两个网页…

2026/9/26 16:42:46 阅读更多 →
桌面智能体从聊天到干活的工程化实践:技能化与项目化

桌面智能体从聊天到干活的工程化实践:技能化与项目化

1. 桌面智能体到底卡在哪:从“能聊天”到“能干活”的那道坎桌面智能体这个词这两年热得发烫,但真正上手用过一圈的人心里都清楚,大部分产品还停留在“能聊天”的阶段。你问它今天天气怎么样,它答得挺溜;你让它帮你把桌…

2026/9/26 16:42:45 阅读更多 →
Codex CLI 手搓自动化脚本:配置、DeepSeek 接入与代理报错排查

Codex CLI 手搓自动化脚本:配置、DeepSeek 接入与代理报错排查

这次我们来看 Codex CLI 怎么用来手搓自动化脚本。很多人对 Codex 的印象还停留在聊天界面里写代码,实际上它的核心价值在命令行 Agent 模式:你把需求用自然语言写清楚,它自己规划任务、写脚本、执行命令、读终端报错、改代码,循环…

2026/9/26 16:42:45 阅读更多 →
QLoRA微调实战:从8GB显存到GGUF本地部署

QLoRA微调实战:从8GB显存到GGUF本地部署

1. 项目概述:为什么QLoRA是当前微调大模型最务实的选择“大语言模型QLoRA微调方法(终)”这个标题里的“终”字,不是指技术终点,而是指一种实践意义上的闭环——它标志着在消费级显卡、单机环境、有限显存(甚…

2026/9/26 16:42:45 阅读更多 →
AI Agent标准架构拆解:用TaoToken统一Key打通LLM与Tools的Loop

AI Agent标准架构拆解:用TaoToken统一Key打通LLM与Tools的Loop

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/26 16:41:45 阅读更多 →

日新闻

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、…

2026/9/26 0:00:25 阅读更多 →
学校官网模拟全流程实践:从页面布局到后端接口与部署

学校官网模拟全流程实践:从页面布局到后端接口与部署

如果你正在找一门 Web 大作业的题目,或者刚开始接触 Web 前端开发想做点能拿来展示的东西,“学校官网模拟”几乎是最稳的选择。题目看着简单,但要把导航、新闻列表、轮播 Banner、二级页面、后台数据都串起来,其实已经把前端布局、…

2026/9/26 0:00:25 阅读更多 →
超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

简介:这是一份面向游戏开发初学者与C进阶学习者的超级玛丽(超级马里奥)游戏源码,基于C面向对象编程实现,适合想通过经典项目理解游戏主循环、角色类设计、地图关卡加载与物理碰撞检测的读者参考。压缩包共49个文件&…

2026/9/26 0:00:25 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/25 19:27:14 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/25 11:15:26 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/25 20:29:09 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/25 20:29:43 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/25 19:27:26 阅读更多 →