Rocky 8.9 Kubespray v2.24.0 在线部署 kubernetes v1.28.6 集群

文章目录
- 1. 简介
- 2. 预备条件
- 3. 基础配置
- 3.1 配置hostname
- 3.2 配置互信
- 4. 配置部署环境
- 4.1 在线安装docker
- 4.2 启动容器 kubespray
- 4.3 编写 inventory.ini
- 4.4 关闭防火墙、swap、selinux
- 4.5 配置内核模块
- 5. 部署
- 6. 集群检查
1. 简介
kubespray 是一个用于部署和管理 Kubernetes 集群的开源工具。它使用 Ansible 作为配置管理工具,可以根据用户需求灵活地配置和部署 Kubernetes 集群。它还支持各种功能,如高可用性、网络插件、存储插件、日志和监控等。
具有以下几个特点:
- 可以部署在 Ubuntu、CentOS、Red Hat、Google Cloud Platform、Amazon Web Services 和 Microsoft Azure。.
- 部署 High Available Kubernetes 集群.
- 可组合性 (Composable),可自行选择 Network Plugin (flannel, calico, canal, weave) 来部署.
- 支持多种 Linux distributions(CoreOS, Debian Jessie, Ubuntu 16.04, CentOS/RHEL7).
本次部署说明:Kubespray v2.24.0 在线部署 kubernetes v1.28.6,软件版本支持如下

2. 预备条件
6 个节点:
| 角色 | ip | cpu | mem | disk | ios | kernel |
|---|---|---|---|---|---|---|
| bastion01 | 192.168.23.30 | 4 | 8G | 100G | Rocky 8.8 | 4.18+ |
| kube-master01 | 192.168.23.31 | 4 | 8G | 100G | Rocky 8.8 | 4.18+ |
| kube-node01 | 192.168.23.32 | 16 | 32G | 100G,200G | Rocky 8.8 | 4.18+ |
| kube-node02 | 192.168.23.33 | 16 | 32G | 100G,200G | Rocky 8.8 | 4.18+ |
| kube-node03 | 192.168.23.34 | 16 | 32G | 100G,200G | Rocky 8.8 | 4.18+ |
| kube-node04 | 192.168.23.35 | 16 | 32G | 100G,200G | Rocky 8.8 | 4.18+ |
注意:机器一定要检查:
- 是否有时间同步服务器:ntp or chrony
- dns
- yum
3. 基础配置
3.1 配置hostname
对应节点分别执行:
hostnamctl set-hostname bastion01
hostnamctl set-hostname kube-master01
hostnamctl set-hostname kube-node01
hostnamctl set-hostname kube-node02
hostnamctl set-hostname kube-node03
hostnamctl set-hostname kube-node04
3.2 配置互信
(bastion01操作)
ssh-keygen
for i in `cat inventory/sample/inventory.ini |grep host| awk '{print $2}' | awk -F '=' '{print $2}'`;do ssh-copy-id root@$i;done
4. 配置部署环境
(bastion01操作)
4.1 在线安装docker
sudo dnf check-update
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf list docker-ce --showduplicates | sort -r
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl start docker && systemctl enable docker && systemctl status docker
docker pull quay.io/kubespray/kubespray:v2.24.0
4.2 启动容器 kubespray
(bastion01操作)
docker run -it --net=host --mount type=bind,source="${HOME}"/.ssh/id_rsa,dst=/root/.ssh/id_rsa \quay.io/kubespray/kubespray:v2.24.0 bash
4.3 编写 inventory.ini
(bastion01操作)
$ vim inventory/sample/inventory.ini
[all]
kube-master01 ansible_host=192.168.23.31 ip=192.168.23.31 etcd_member_name=etcd1
kube-master02 ansible_host=192.168.23.32 ip=192.168.23.32 etcd_member_name=etcd2
kube-master03 ansible_host=192.168.23.33 ip=192.168.23.33 etcd_member_name=etcd3
kube-node01 ansible_host=192.168.23.34 ip=192.168.23.34
kube-node02 ansible_host=192.168.23.35 ip=192.168.23.35[kube_control_plane]
kube-master01
kube-master02
kube-master03[etcd]
kube-master01
kube-master02
kube-master03[kube_node]
kube-node01
kube-node02[calico_rr][k8s_cluster:children]
kube_control_plane
kube_node
calico_rr
查看默认的集群配置如下,你可以配置指定的 kubernetes 版本、网络插件、容器运行时等等,查看支持组件版本。
root@38261b1472a7:/kubespray# cat inventory/sample/group_vars/k8s_cluster/k8s-cluster.yml |grep -v "#" |grep -v "^$"
---
kube_config_dir: /etc/kubernetes
kube_script_dir: "{{ bin_dir }}/kubernetes-scripts"
kube_manifest_dir: "{{ kube_config_dir }}/manifests"
kube_cert_dir: "{{ kube_config_dir }}/ssl"
kube_token_dir: "{{ kube_config_dir }}/tokens"
kube_api_anonymous_auth: true
kube_version: v1.26.5
local_release_dir: "/tmp/releases"
retry_stagger: 5
kube_owner: kube
kube_cert_group: kube-cert
kube_log_level: 2
credentials_dir: "{{ inventory_dir }}/credentials"
kube_network_plugin: calico
kube_network_plugin_multus: false
kube_service_addresses: 10.233.0.0/18
kube_pods_subnet: 10.233.64.0/18
kube_network_node_prefix: 24
enable_dual_stack_networks: false
kube_service_addresses_ipv6: fd85:ee78:d8a6:8607::1000/116
kube_pods_subnet_ipv6: fd85:ee78:d8a6:8607::1:0000/112
kube_network_node_prefix_ipv6: 120
kube_apiserver_ip: "{{ kube_service_addresses|ipaddr('net')|ipaddr(1)|ipaddr('address') }}"
kube_proxy_mode: ipvs
kube_proxy_strict_arp: false
kube_proxy_nodeport_addresses: >-{%- if kube_proxy_nodeport_addresses_cidr is defined -%}[{{ kube_proxy_nodeport_addresses_cidr }}]{%- else -%}[]{%- endif -%}
kube_encrypt_secret_data: false
cluster_name: cluster.local
ndots: 2
dns_mode: coredns
enable_nodelocaldns: true
enable_nodelocaldns_secondary: false
nodelocaldns_ip: 169.254.25.10
nodelocaldns_health_port: 9254
nodelocaldns_second_health_port: 9256
nodelocaldns_bind_metrics_host_ip: false
nodelocaldns_secondary_skew_seconds: 5
enable_coredns_k8s_external: false
coredns_k8s_external_zone: k8s_external.local
enable_coredns_k8s_endpoint_pod_names: false
resolvconf_mode: host_resolvconf
deploy_netchecker: false
skydns_server: "{{ kube_service_addresses|ipaddr('net')|ipaddr(3)|ipaddr('address') }}"
skydns_server_secondary: "{{ kube_service_addresses|ipaddr('net')|ipaddr(4)|ipaddr('address') }}"
dns_domain: "{{ cluster_name }}"
container_manager: containerd
kata_containers_enabled: false
kubeadm_certificate_key: "{{ lookup('password', credentials_dir + '/kubeadm_certificate_key.creds length=64 chars=hexdigits') | lower }}"
k8s_image_pull_policy: IfNotPresent
kubernetes_audit: false
default_kubelet_config_dir: "{{ kube_config_dir }}/dynamic_kubelet_dir"
podsecuritypolicy_enabled: false
volume_cross_zone_attachment: false
persistent_volumes_enabled: false
event_ttl_duration: "1h0m0s"
auto_renew_certificates: false
kubeadm_patches:enabled: falsesource_dir: "{{ inventory_dir }}/patches"dest_dir: "{{ kube_config_dir }}/patches"
配置代理,否则 registry.k8s.io 镜像无法下载
$ vim inventory/sample/group_vars/all/all.yml
...
http_proxy: "http://192.168.21.101:7890"
https_proxy: "http://192.168.21.101:7890"
no_proxy: "localhost,127.0.0.0/8,169.0.0.0/8,10.0.0.0/8,192.168.0.0/16,*.coding.net,*.tencentyun.com,*.myqcloud.com"
...
4.4 关闭防火墙、swap、selinux
(bastion01操作)
ansible -i inventory/sample/inventory.ini all -m ping
ansible -i inventory/sample/inventory.ini all -m systemd -a "name=firewalld state=stopped enabled=no"
ansible -i inventory/sample/inventory.ini all -m lineinfile -a "path=/etc/selinux/config regexp='^SELINUX=' line='SELINUX=disabled'" -b
ansible -i inventory/sample/inventory.ini all -m shell -a "getenforce 0"
ansible -i inventory/sample/inventory.ini all -m shell -a "sed -i '/.*swap.*/s/^/#/' /etc/fstab" -b
ansible -i inventory/sample/inventory.ini all -m shell -a " swapoff -a && sysctl -w vm.swappiness=0"
4.5 配置内核模块
ansible -i inventory/sample/inventory.ini all -m shell -a " modprobe bridge && modprobe br_netfilter && modprobe ip_conntrack"
ansible -i inventory/sample/inventory.ini all -m lineinfile -a "path=/etc/rc.local line='modprobe br_netfilter\nmodprobe ip_conntrack'"
5. 部署
ansible-playbook -i inventory/sample/inventory.ini cluster.yml
或者
ansible-playbook -i inventory/sample/inventory.ini --private-key /root/.ssh/id_rsa cluster.yml
或者
ansible-playbook -i inventory/sample/inventory.ini --private-key /root/.ssh/id_rsa --become --become-user=root cluster.yml
执行两次,第一次拉取镜像失败了,第二次成功。
输出
PLAY RECAP ************************************************************************************kube-master01 : ok=732 changed=88 unreachable=0 failed=0 skipped=1140 rescued=0 ignored=6
kube-master02 : ok=642 changed=77 unreachable=0 failed=0 skipped=1014 rescued=0 ignored=3
kube-master03 : ok=644 changed=78 unreachable=0 failed=0 skipped=1012 rescued=0 ignored=3
kube-node01 : ok=510 changed=38 unreachable=0 failed=0 skipped=708 rescued=0 ignored=1
kube-node02 : ok=510 changed=38 unreachable=0 failed=0 skipped=704 rescued=0 ignored=1
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 Tuesday 20 February 2024 12:28:50 +0000 (0:00:00.953) 0:39:11.876 ******
===============================================================================
download : Download_file | Download item ---------------------------------------------- 67.35s
download : Download_container | Download image if required ---------------------------- 65.96s
download : Download_container | Download image if required ---------------------------- 55.70s
download : Download_container | Download image if required ---------------------------- 52.75s
download : Download_file | Download item ---------------------------------------------- 52.66s
download : Download_container | Download image if required ---------------------------- 47.75s
etcd : Gen_certs | Write etcd member/admin and kube_control_plane client certs to other etcd nodes -- 42.64s
download : Download_file | Download item ---------------------------------------------- 39.98s
download : Download_container | Download image if required ---------------------------- 29.49s
download : Download_container | Download image if required ---------------------------- 29.04s
kubernetes-apps/ansible : Kubernetes Apps | Lay Down CoreDNS templates ---------------- 27.46s
download : Download_container | Download image if required ---------------------------- 26.89s
download : Download_container | Download image if required ---------------------------- 25.15s
kubernetes/control-plane : Kubeadm | Initialize first master -------------------------- 24.86s
kubernetes-apps/ansible : Kubernetes Apps | Start Resources --------------------------- 22.03s
download : Download_container | Download image if required ---------------------------- 20.59s
download : Download_container | Download image if required ---------------------------- 19.24s
kubernetes/control-plane : Joining control plane node to the cluster. ----------------- 18.58s
container-engine/containerd : Download_file | Download item --------------------------- 17.74s
kubespray-defaults : Gather ansible_default_ipv4 from all hosts ----------------------- 16.87s
6. 集群检查
登陆 kube-master01 节点,检查集群状态
$ kubectl get node
NAME STATUS ROLES AGE VERSION
kube-master01 Ready control-plane 4h12m v1.28.6
kube-master02 Ready control-plane 4h11m v1.28.6
kube-master03 Ready control-plane 4h11m v1.28.6
kube-node01 Ready <none> 4h10m v1.28.6
kube-node02 Ready <none> 4h10m v1.28.6
$ kubectl get pod -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-648dffd99-rst7q 1/1 Running 0 4h11m
kube-system calico-node-h672c 1/1 Running 0 4h12m
kube-system calico-node-kh6x6 1/1 Running 0 4h12m
kube-system calico-node-ppbck 1/1 Running 0 4h12m
kube-system calico-node-sq7j6 1/1 Running 0 4h12m
kube-system calico-node-twqxr 1/1 Running 0 4h12m
kube-system coredns-77f7cc69db-9xn9l 1/1 Running 0 4h10m
kube-system coredns-77f7cc69db-pc9sv 1/1 Running 0 4h9m
kube-system dns-autoscaler-8576bb9f5b-lxspw 1/1 Running 0 4h9m
kube-system kube-apiserver-kube-master01 1/1 Running 1 4h15m
kube-system kube-apiserver-kube-master02 1/1 Running 1 4h15m
kube-system kube-apiserver-kube-master03 1/1 Running 2 4h15m
kube-system kube-controller-manager-kube-master01 1/1 Running 2 4h15m
kube-system kube-controller-manager-kube-master02 1/1 Running 2 4h15m
kube-system kube-controller-manager-kube-master03 1/1 Running 4 4h15m
kube-system kube-proxy-g5ps5 1/1 Running 0 4h13m
kube-system kube-proxy-kq8bz 1/1 Running 0 4h13m
kube-system kube-proxy-nhsbt 1/1 Running 0 4h13m
kube-system kube-proxy-vznb9 1/1 Running 0 4h13m
kube-system kube-proxy-xt862 1/1 Running 0 4h13m
kube-system kube-scheduler-kube-master01 1/1 Running 1 4h15m
kube-system kube-scheduler-kube-master02 1/1 Running 1 4h15m
kube-system kube-scheduler-kube-master03 1/1 Running 1 4h15m
kube-system nginx-proxy-kube-node01 1/1 Running 0 4h14m
kube-system nginx-proxy-kube-node02 1/1 Running 0 4h14m
kube-system nodelocaldns-98twv 1/1 Running 0 4h9m
kube-system nodelocaldns-cgks9 1/1 Running 0 4h9m
kube-system nodelocaldns-jwn7s 1/1 Running 0 4h9m
kube-system nodelocaldns-rfpt8 1/1 Running 0 4h9m
kube-system nodelocaldns-w4zg2 1/1 Running 0 4h9m
相关文章:
Rocky 8.9 Kubespray v2.24.0 在线部署 kubernetes v1.28.6 集群
文章目录 1. 简介2. 预备条件3. 基础配置3.1 配置hostname3.2 配置互信 4. 配置部署环境4.1 在线安装docker4.2 启动容器 kubespray4.3 编写 inventory.ini4.4 关闭防火墙、swap、selinux4.5 配置内核模块 5. 部署6. 集群检查 1. 简介 kubespray 是一个用于部署和管理 Kuber…...
新版AI系统ChatGPT源码支持GPT-4/支持AI绘画去授权
源码获取方式 搜一搜:万能工具箱合集 点击资源库直接进去获取源码即可 如果没看到就是待更新,会陆续更新上 新版AI系统ChatGPT网站源码支持GPT-4/支持AI绘画/Prompt应用/MJ绘画源码/PCH5端/免授权,支持关联上下文,意间绘画模型…...
学习鸿蒙基础(5)
一、honmonyos的page路由界面的路径 新建了一个page,然后删除了。运行模拟器的时候报错了。提示找不到这个界面。原来是在路由界面没有删除这个page。新手刚接触找了半天才找到这个路由。在resources/base/profile/main_pages.json 这个和微信小程序好类似呀。 吐槽…...
Tuxera NTFS2024最新中文版支持M1/M2/M3苹果全系机型
Tuxera NTFS的传输速度会受到多种因素的影响,包括硬件配置、文件大小、存储设备的性能等。因此,无法给出具体的传输速度数值。 不过,根据一些用户的使用经验和测试数据,Tuxera NTFS的传输速度通常都非常快,能够满足大…...
【Python】OpenCV-图片添加水印处理
图片添加水印处理 1. 引言 图像处理中的水印添加是一种常见的操作,用于在图片上叠加一些信息或标识。本文将介绍如何使用OpenCV库在图片上添加水印,并通过详细的代码注释来解释每一步的操作。 2. 代码示例 以下是一个使用OpenCV库的简单代码示例&…...
Milvus数据库介绍
参考:https://www.xjx100.cn/news/1726910.html?actiononClick Milvus 基于FAISS、Annoy、HNSW 等向量搜索库构建,核心是解决稠密向量相似度检索的问题。在向量检索库的基础上,Milvus 支持数据分区分片、数据持久化、增量数据摄取、标量向量…...
notepad++的下载与使用
1.进入官网下载 https://notepad-plus-plus.org/ 点击下载即可 2.选择中文简体 3.建议安装在D盘 其余步骤按照指示就行 4.安装后这几个是必选的 设置完成后就可以写中文了 以此为例 结果为...
论UI的糟糕设计:以百度网盘为例
上面这一排鼠标一经过就会弹出来(不是点才弹出来),然后挡住你的各种操作, 弹出来时你就必须等它消失,卡一下才能操作。 在用户顺畅地操作内容时,经常就卡一下、卡一下、卡一下…… 1、比如鼠标从下到上&am…...
【Spring】三级缓存
目录标题 触发所有未加载的实例a - 开始getBean( doGetBean) - 获取单例beangetSingleton() - 获取单例beancreateBean(doCreateBean) - 创建beancreateBeanInstance - 创建并返回beanaddSingletonFactory -放三级缓存populateBea…...
CVE-2016-3088(ActiveMQ任意文件写入漏洞)
漏洞描述 1、漏洞编号:CVE-2016-3088 2、影响版本:Apache ActiveMQ 5.x~5.13.0 在 Apache ActiveMQ 5.12.x~5.13.x 版本中,默认关闭了 fileserver 这个应用(不过,可以在conf/jetty.xml 中开启);…...
270.【华为OD机试真题】字符串拼接(深度优先搜索(DFS)-JavaPythonC++JS实现)
🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-字符串拼接二.解题思路三.题解代码Python题解代…...
线阵相机参数介绍之轴编码器控制
1.1 功能介绍 编码器是将检测对象的运动与相机拍摄取图相匹配的设备,也即检测对象运动一定距离,相机就拍摄一定行高的图像。 编码器会将检测对象的实际位移转换为固定数量电信号。例如:编码器的精度是2000p/r,该参数的含义是编码器每转一圈输…...
【JavaEE】_HTTP响应
目录 1. 首行 2. 报头header 3.空行 4. 正文body 1. 首行 响应首行:版本号状态码状态码描述; HTTP状态码描述了这次响应的结果(比如成功、失败,以及失败原因等); 1. HTTP状态码有: &#…...
SQL防止注入工具类,可能用于SQL注入的字符有哪些
SQL注入是一种攻击技术,攻击者试图通过在输入中注入恶意的SQL代码来干扰应用程序的数据库查询。为了防止SQL注入,你需要了解可能用于注入的一些常见字符和技术。以下是一些常见的SQL注入字符和技术: 单引号 : 攻击者可能会尝试…...
【数学建模入门】
数学建模入门 数学建模需要的学科知识怎么学习数学模型如何读好一篇优秀论文数学建模赛题常见类别数学建模常见问题数学建模组队和分工数学建模准备工作 数学建模需要的学科知识 怎么学习数学模型 💦推荐阅读书籍: 《数学建模算法与应用》,…...
ansible剧本中的角色
1 roles角色 1.1 roles角色的作用? 可以把playbook剧本里的各个play看作为一个角色,将各个角色打的tasks任务、vars变量、template模版和copy、script模块使用的相关文件等内容放置在指定角色的目录里统一管理,在需要的时候可在playbook中使…...
weblog项目开发记录--SpringBoot后端工程骨架
知识点查漏补缺 跟着犬小哈做项目实战时发现好多知识点都忘了,还有一些小的知识点可能之前没学过,记录下!顺带整理下开发流程。 完整项目学习见犬小哈实战专栏 SpringBoot后端工程骨架 搭建好的工程骨架中实现了很多基础功能,…...
axios封装终极版实现token无感刷新及全局loading
前言 关于axios全局loading的封装博主已经发过一次了,这次是在其基础上增加了token的无感刷新。 token无感刷新流程 首次登录的时候会获取到两个token(AccessToken,RefreshToken)持久化保存起来(localStorage方案&a…...
推荐一个内网穿透工具,支持Windows桌面、Linux、Arm平台客户端
神卓互联是一款常用的内网穿透工具,它可以将本地服务器映射到公网上,并提供域名或子域名给外部访问。神卓互联具有简单易用、高速稳定的特点,支持Windows桌面版、Linux版、Arm版客户端,以及硬件等。 神卓互联内网穿透技术简介 企…...
【linux】vim多行操作命令
文章目录 1. vim多行同时修改2. vim复制/移动多行3. vim删除多行4. vim设置缩进空格 回顾:vi/vim常用命令 1. vim多行同时修改 (1) ctrl v (2) 按 下箭头,选择多行 (3) shift i,…...
三千年的欲望、痕迹与自感:资本批判与伦理中间件
三千年的欲望、痕迹与自感:资本批判与伦理中间件岐金兰 丙午神农---引言:被命名的与未命名的在人类文明的长河中,有一个东西从未缺席,却长期被剥夺了命名的权利。它比语言更古老,比理性更顽强,比任何社会制…...
Linux内核设计哲学:你我承载力的艺术(续)
第七部:设备驱动——与不完美的世界和解7.1 你不是主人,你是仆人设备驱动是内核中最“卑微”的组件。它不和用户直接打交道,不参与核心决策,甚至不拥有任何资源。它只是硬件的翻译官——把内核的标准请求翻译成硬件能懂的指令&…...
**发散创新:基于Python与OpenCV的智能交通流量实时监测系统设计
发散创新:基于Python与OpenCV的智能交通流量实时监测系统设计与实现 在智慧城市建设不断深化的背景下,智能交通系统(ITS) 正成为城市治理现代化的重要突破口。传统的交通信号控制多依赖固定时长或人工经验判断,难以应对…...
2026年社会学论文降AI率工具推荐:田野调查和访谈记录部分
2026年社会学论文降AI率工具推荐:田野调查和访谈记录部分 同学群里有人问社会学论文降AI工具推荐,我发现自己每次回答都差不多——嘎嘎降AI。干脆写一篇详细的推荐文章,省得每次重复。 直接结论:嘎嘎降AI(www.aigcle…...
服务器速度很慢
表现:20K/s ssh有时候能打开,有时候打不开结果:没有交话费,欠费。解决方式:充值200元现在能打开了,另外添加了一个参数:ProxyPreserveHost off但是很可能没用,因为我一开始直接访问…...
革命性文档处理工具text-extract-api:10分钟快速上手指南
革命性文档处理工具text-extract-api:10分钟快速上手指南 【免费下载链接】text-extract-api Document (PDF, Word, PPTX ...) extraction and parse API using state of the art modern OCRs Ollama supported models. Anonymize documents. Remove PII. Convert …...
AI技术原理--AI上下文窗口:为什么AI没有真正的记忆
99%的人都理解错了一个问题:AI真的会记得你吗? 很多人信誓旦旦跟我说:昨天我跟GPT聊了好久,今天一打开还能接着聊,这不是记忆是什么? 但如果我告诉你,它根本就不记得你——你是不是直接懵了&…...
基于AI的测试用例自动生成:效果与局限
随着人工智能技术的飞速发展与在软件工程领域的深度融合,测试用例自动生成正经历一场深刻的变革。传统的测试用例设计高度依赖测试工程师的经验与手工劳动,面临效率瓶颈、覆盖率不足、维护成本高昂等诸多挑战。以机器学习、自然语言处理、知识图谱等为代…...
数据仓库建模:事实表类型详解与选型实战指南
数据仓库建模:事实表类型详解与选型实战指南一、引言二、定义:什么是数据仓库事实表?三、数据仓库中三大核心事实表类型3.1 类型1:事务事实表(Transaction Fact Table)3.2 类型2:周期快照事实表…...
KOOK艺术馆入门必看:Streamlit缓存机制与大模型加载优化技巧
KOOK艺术馆入门必看:Streamlit缓存机制与大模型加载优化技巧 想象一下,你刚刚部署了璀璨星河艺术馆,这个界面美得像卢浮宫画廊的AI绘画工具。你兴奋地输入了第一个创意描述,点击生成按钮,然后...开始了漫长的等待。界…...
