k8s中資源的介紹及標準資源namespaces實踐

文章目錄

  • 第1章 k8s中的資源(resources)介紹
    • 1.1 k8s中資源(resouces)的分類
    • 1.2 k8s中資源(resources)的級別
    • 1.3 k8s中資源(resources)的API規范
    • 1.4 k8s中資源(resources)的manifests
  • 第2章 k8s中的標準資源之namespaces的實踐
    • 2.1 基本介紹
    • 2.2 編寫相關ns資源對象的manifests
    • 2.3 應用相關ns資源對象的manifests
    • 2.4 列出相關ns資源對象
    • 2.5 ns資源對象的name
    • 2.6 ns資源對象的labels
    • 2.7 列出ns資源對象中已有非namespace級別的資源對象
    • 2.8 ns資源對象的刪除
  • 第3章 基于ns資源對象實踐理解Label的管理

第1章 k8s中的資源(resources)介紹

1.1 k8s中資源(resouces)的分類

我們用 kubectl api-resources 可看到其 kubernetes 中的所有資源(當然kubectl所用的kubeconfig所承載的帳戶得具備超級權限)。

root@master01:~# kubectl api-resources | head -4   # 只取了前4行
NAME                 SHORTNAMES  APIVERSION NAMESPACED   KIND
bindings                         v1         true         Binding
componentstatuses    cs          v1         false        ComponentStatus
configmaps           cm          v1         true         ConfigMap

這些資源可分為標準資源(安裝好kubernetes后就有)、非標準資源(擴展kubernetes后才有),我們可用 kubectl get crd 看到有哪些非標準資源,其結果 NAME 字段對應值以點號"."分隔的第一列就是其資源的name。

root@master01:~# kubectl get crd | head -4        # 只取了前4行
NAME                                         CREATED AT
analysisruns.argoproj.io                     2025-04-23T02:32:30Z
analysistemplates.argoproj.io                2025-04-23T02:32:30Z
applications.argoproj.io                     2025-04-19T17:46:46Z
root@master01:~#
root@master01:~# kubectl api-resources | grep -w applications
applications       app,apps     argoproj.io/v1alpha1     true   Application

1.2 k8s中資源(resources)的級別

不管是標準資源、非標準資源,它們要么是namespace級別、非namespace級別(也稱cluster級別)。可從 kubectl api-resources 結果的 NAMESPACE字段中看到,也可用 kubectl api-resources --namespaced=true/false 列出所有namespace級別或非namespace級別的資源

## kubectl工具看某個資源屬于什么級別
root@master01:~# kubectl api-resources  | grep -w Namespace 
namespaces   ns   v1    false        Namespace    # <== false表示 非namespace級別
root@master01:~# 
root@master01:~# kubectl api-resources | grep -w Pod
pods        po    v1    true         Pod          # <== true表示 namespace級別## kuectl工具列出所有namespace級別或所有非namespace級別的資源
kubectl api-resources --namespaced=true 
kubectl api-resources --namespaced=false

注意:namespace級別的資源其實例化出來的對象得放在已存在的ns資源對象(由Kind為Namespace的資源namespaces實例化出來的)中。

1.3 k8s中資源(resources)的API規范

我們可用以下方法獲取標準資源、非標準資源類的某資源其API規范中有哪些一級字段。

## 參考
root@master01:~# kubectl api-resources | head -1
NAME        SHORTNAMES       APIVERSION     NAMESPACED      KIND## 規范的
# <== 格式
kubectl explain --api-version='<APIVERSION>' <KIND># <== 例如
kubectl explain --api-version='v1' Pod## 簡化的
# <== 格式
kubectl explain  <KIND># <== 例如
kubectl explain  Pod

標準資源、非標準資源其API規范一定會有apiVersion、kind、metadata這三個一級字段,在編寫其對象的manifests是得寫上。
大多數資源其API規范中有spec這個一級字段,用于定義期望狀態,在編寫其對象的manifests時得寫上。
標準資源、非標準資源的API規范一定會有status這個一級字段,在編寫其對象的manifests時不用寫。當對象創建后其status是由其spec轉換而來(期望狀態轉換成實際狀態)。
我們也可以查看某資源其API規范中一級字段下有哪些二級字段,二級字段有哪些三級字段。如下所示。

## 規范的
kubectl explain --api-version='<APIVERSION>' <KIND>                       # 可看到有哪些一級字段
kubectl explain --api-version='<APIVERSION>' <KIND>.某一級字段             # 可看到有哪些二級字段
kubectl explain --api-version='<APIVERSION>' <KIND>.某一級字段.某二級字段   # 可看到有哪些三級字段 ## 簡化的
kubectl explain                              <KIND>                       # 可看到有哪些一級字段
kubectl explain                              <KIND>.某一級字段             # 可看到有哪些二級字段
kubectl explain                              <KIND>.某一級字段.某二級字段   # 可看到有哪些三級字段 

前面提到

namespace級別的資源其實例化出來的對象得放在某ns資源對象(由Kind為Namespace的資源namespaces實例化出來)中。

那么所以

namespace級別的資源其API規范中metadata字段下的namespace字段,在編寫manifests時得指定。
非namespace級別的資源其API規范中metadata字段下的namespace字段,在編寫manifests時不用指定,指定也沒用的。

# namespace級別的資源其API規范中metadata字段下的namespace字段,在編寫manifests時得指定。
root@master01:~# kubectl explain Pod.metadata.namespace         # 在編寫manifests時得指定# 非namespace級別的資源其API規范中metadata一級字段下的namespace字段,在編寫manifests時不用指定,指定也沒用的。
root@master01:~# kubectl explain Namespace.metadata.namespace   # 在編寫manifests時不用指定

1.4 k8s中資源(resources)的manifests

資源實例化出對象

可以使用kubectl工具在命令行直接創建(默認只支持使用相應的標準資源),但這種方式不推薦(若要在線修改呢、若被刪除了且在沒備份的情況下你如何快速恢復呢)。
也可以根據其API規范編寫manifests,其manifests可以放在一個文件中,這個文件中可以存在多個不同類型的資源對象的manifests,得用三個橫杠(—)獨占一行進行分隔,這個文件中的內容其格式要么是json/yaml,其文件的擴展名也得是json/yaml,推薦內容格式為yaml,文件擴展名為yaml,易于人類可讀。最后可用kubectl apply -f /path/xxx.yaml -f /path/yyy.yaml 或 cd /path/ && kubectl apply -f . 或 kubectl apply -f /path/ 進行應用(不存在就創建,存在就更新其差異的,有些字段是不可在線更新的)
在版書時可用 “資源的類型/所實例化出對象的name”來表示一個對象,如下所示

Namespace/a
Namespace/b

前面提到

標準資源、非標準資源都有namespace級別、非namespace級別(也稱cluster級別),均有一級字段之metadata字段,而metadata字段下的name字段是必須指定的。

那么所以

非namespace級別的某資源所實例化出來的對象不允許重名,不同資源間所實例化出來的對象是允許重名的。如下所示:

Namespace/a#      # 若存在#   kubectl工具命令行再創建Namespace/a,不允許,直接報錯。#   kubectl工具apply -f Namespace/a <其manifests所在的文件>,其實是#       更新(有些字段是不允許更新的,例如metadata.name,有些字段更新后的影響你得心中有數)#   
PersistentVolume/a   # # 若存在#   kubectl工具命令行再創建PersistentVolume/a,不允許,直接報錯。#   kubectl工具apply -f PersistentVolume/a <其manifests所在的文件>,其實是#      更新(有些字段是不允許更新的,例如metadata.name,有些字段更新后的影響你得心中有數)# 

namespace級別的某資源所實例化出來的對象不能在所指定 ns 中與現有某資源對象重名,可與非指定ns中現有某資源對象重名。

Namespace/a 對象中Deployment/a # 若存在#   kubectl工具命令行再創建Deployment/a,不允許,直接報錯。#   kubectl工具apply -f Deployment/a <其manifests所在的文件>,其實是#       更新(有些字段是不允許更新的,例如metadata.name,有些字段更新后的影響你得心中有數)#   Service/a# 若存在#   kubectl工具命令行再創建Service/a,不允許,直接報錯。#   kubectl工具apply -f Service/a <其manifests所在的文件>,其實是#       更新(有些字段是不允許更新的,例如metadata.name,有些字段更新后的影響你得心中有數)#   Namespace/b 對象中Deployment/a## 若存在,跟 Namespace/a 中的 Deployment/a 沒有任何關系#   kubectl工具命令行再創建Deployment/a,不允許,直接報錯。#   kubectl工具apply -f Deployment/a <其manifests所在的文件>,其實是#       更新(有些字段是不允許更新的,例如metadata.name,有些字段更新后的影響你得心中有數)#  Service/a## 若存在,跟 Namespace/a 中的  Service/a 沒有任何關系#   kubectl工具命令行再創建Service/a,不允許,直接報錯。#   kubectl工具apply -f Service/a <其manifests所在的文件>,其實是#       更新(有些字段是不允許更新的,例如metadata.name,有些字段更新后的影響你得心中有數)#   

第2章 k8s中的標準資源之namespaces的實踐

2.1 基本介紹

namespaces資源(簡寫ns)是kubernetes中的標準資源,屬于非namespace級別,其實例化出來的對象用于邏輯存放namespace級別資源所實例化出來的對象。
當ns資源對象被刪除后,其里面所包含的非namespace級別資源所實例化出來的對象也會被刪除。得小心哦。

2.2 編寫相關ns資源對象的manifests

我們應該讓各ns資源對象的manifests獨占一個文件。因為在刪除資源對象時可以使用kubectl delete -f <文件> 來刪除,當ns資源對象被刪除后,其里面所包含的非namespace級別資源所實例化出來的對象也會被刪除。

ns/dev-wyc對象的manifests,手動編寫

cat >./ns_dev-wyc.yaml<<'EOF'
apiVersion: v1
kind: Namespace
metadata:name: dev-wyclabels:env: dev proj: wyc
EOF

ns/test-wyc對象的manifests,手動編寫

cat >./ns_test-wyc.yaml<<'EOF'
apiVersion: v1
kind: Namespace
metadata:name: test-wyclabels:env: testproj: wyc
EOF

ns/prod-wyc對象的manifests,手動編寫

cat >./ns_prod-wyc.yaml<<'EOF'
apiVersion: v1
kind: Namespace
metadata:name: prod-wyclabels:env: prodproj: wyc
EOF

ns/uat-wyc對象的manifests,kubectl工具快速生成

kubectl create namespace uat-wyc --dry-run=client -o yaml >./ns_uat-wyc.yaml
ls -l ./ns_uat-wyc.yaml## 命令行快速生成ns資源對象的manifests,并保存于一個文件中。# 命令行無法指定ns/uat-wyc對象的相應label(不是必須的,可命令行添加,也可編輯文件后并保存)。# PS:我這里沒有修改,主要是與后面的步驟有關聯#

2.3 應用相關ns資源對象的manifests

應用ns_dev-wyc.yaml這個manifests

# -->檢查語法
kubectl apply -f ./ns_dev-wyc.yaml --dry-run=client
# -->應用manifests
kubectl apply -f ./ns_dev-wyc.yaml
# -->列出manifests中的相關資源對象
kubectl get   -f ./ns_dev-wyc.yaml
# -->列出ns/dev-wyc對象
kubectl get   ns/dev-wyc
# -->列出所有的ns資源對象,并根據labels過濾,且顯示所有labels
kubectl get   ns -l kubernetes.io/metadata.name=dev-wyc --show-labels

應用ns_test-wyc.yaml這個manifests

kubectl apply -f ./ns_test-wyc.yaml --dry-run=client
kubectl apply -f ./ns_test-wyc.yaml
kubectl get   -f ./ns_test-wyc.yaml
kubectl get   ns/test-wyc
kubectl get   ns -l kubernetes.io/metadata.name=test-wyc --show-labels

應用ns_prod-wyc.yaml這個manifests

kubectl apply -f ./ns_prod-wyc.yaml --dry-run=client
kubectl apply -f ./ns_prod-wyc.yaml
kubectl get   -f ./ns_prod-wyc.yaml
kubectl get   ns/prod-wyc
kubectl get   ns -l kubernetes.io/metadata.name=prod-wyc --show-labels

應用ns_uat-wyc.yaml這個manifests

kubectl apply -f ./ns_uat-wyc.yaml --dry-run=client
kubectl apply -f ./ns_uat-wyc.yaml
kubectl get   -f ./ns_uat-wyc.yaml
kubectl get   ns/uat-wyc
kubectl get   ns -l kubernetes.io/metadata.name=uat-wyc --show-labels
# --> 命令行給其打上相應的標簽。規范的是修改其manifests,再應用manifests,這里只是引出命令行如何給某資源對象打Label
kubectl label Namespace uat-wyc env=uat proj=wyc
# --> 再通過相應標簽進行查看
kubectl get   ns -l kubernetes.io/metadata.name=uat-wyc --show-labels

2.4 列出相關ns資源對象

列出所有的ns資源對象

## 格式
kubectl get <某資源的kind>## 示例
kubectl get Namespace

列出已存在的一個或多個ns資源對象

## 格式1
kubectl get <某資源的kind>  <對象name>   [對象name]## 格式2
kubectl get <某資源的kind>/<對象name>    [某資源的kind]/[對象的name]## 格式1示例
kubectl get Namespace   dev-wyc  test-wyc  uat-wyc  prod-wyc## 格式2示例
kubectl get Namespace/dev-wyc Namespace/test-wyc  Namespace/uat-wyc  Namespace/prod-wyc

通過標簽列出wyc項目相關的ns資源對象

# 列出wyc項目相關的所有ns資源對象
kubectl get ns -l proj=wyc# 列出dev環境之wyc項目所用的ns資源對象
kubectl get ns -l env=dev,proj=wyc   # 指定多個標簽進行過濾,當有多個時,用逗號分隔,且是與(and)關系# 列出test環境之wyc項目所用的ns資源對象
...................................# 列出uat環境之wyc項目所用的ns資源對象
...................................# 列出prod環境之wyc項目所用的ns資源對象
...................................

2.5 ns資源對象的name

非namespace級別的某資源所實例化出來的對象不能重名,不同資源間所實例化出來的對象是可以重名的。
namespace級別的某資源所實例化出來的對象不能在所指定 ns 中與現有某資源對象重名,可與非指定ns中現有某資源對象重名。
kubernetes中所有資源對象的name規范均遵循一定的規范:

https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/names/#names

ns資源對象的name規范得遵循 RFC 1123。
在這里插入圖片描述

2.6 ns資源對象的labels

kubernetes中的各資源對象均有 labels 這一屬性,屬于元數據(metadata)的一部分,支持在線更新,我們不能隨便在線更新。
各ns資源對象具備默認的標簽之 app.kubernetes.io/instance=<ns資源對象的name> ,我們可以給ns資源對象額外的添加 labels。
有些場景下,ns資源對象可能需要打上特定的標簽,例如:Istio部署到kubernetes平臺上,其業務所用標簽就得打上 Istio 所規定的標簽。

2.7 列出ns資源對象中已有非namespace級別的資源對象

首先,kubectl -n <ns資源對象> get all 看不全 <ns資源對象> 中包含的所有已有非namespace資源所實例化出來的對象,即使kubernetes中的標準資源。

## 查看 ns/uat-wyc 對象中所包含的所有資源對象,(不嚴謹) 
root@master01:~# kubectl -n uat-wyc get all
No resources found in uat-wyc namespace.
root@master01:~# ## 可用以下命令查看某 ns資源對象 中所包含的所有資源對象 (嚴謹)
# <== 列出namespace級別所有resources,并取其KIND字段的值
kubectl api-resources --verbs=list --namespaced=true | awk -F " " '{print $NF}' | sed 1d# <== 列出某ns資源對象中所包含namespace級別資源的相關資源對象
kubectl api-resources --verbs=list --namespaced=true | awk -F " " '{print $NF}' | sed 1d  | \xargs -n 1  kubectl -n <ns資源對象>  get --show-kind  --ignore-not-found# <== 再進一步處理
kubectl api-resources --verbs=list --namespaced=true | awk -F " " '{print $NF}' | sed 1d  | \xargs -n 1  kubectl -n <ns資源對象>  get --show-kind  --ignore-not-found |  \sed '/^NAME/'d# <== 再進一步處理
kubectl api-resources --verbs=list --namespaced=true | awk -F " " '{print $NF}' | sed 1d  | \xargs -n 1  kubectl -n <ns資源對象>  get --show-kind  --ignore-not-found |  \sed '/^NAME/'d | \awk -F " " '{print $1}'

2.8 ns資源對象的刪除

第3章 基于ns資源對象實踐理解Label的管理

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/80752.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/80752.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/80752.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

優化uniappx頁面性能,處理頁面滑動卡頓問題

問題&#xff1a;在頁面遇到滑動特別卡的情況就是在頁面使用了動態樣式或者動態類&#xff0c;做切換的時候頁面重新渲染導致頁面滑動卡頓 解決&#xff1a;把動態樣式和動態類做的樣式切換改為通過獲取元素修改樣式屬性值 循環修改樣式示例 bannerList.forEach((_, index)…

DeepSeek賦能Nuclei:打造網絡安全檢測的“超級助手”

引言 各位少俠&#xff0c;周末快樂&#xff0c;幸會幸會&#xff01; 今天嘮一個超酷的技術組合——用AI大模型給Nuclei開掛&#xff0c;提升漏洞檢測能力&#xff01; 想象一下&#xff0c;當出現新漏洞時&#xff0c;少俠們經常需要根據Nuclei模板&#xff0c;手動扒漏洞文章…

leetcode - 字符串

字符串 466. 統計重復個數 題目 定義 str [s, n] 表示 str 由 n 個字符串 s 連接構成。 例如&#xff0c;str ["abc", 3] "abcabcabc" 。 如果可以從 s2( )中刪除某些字符使其變為 s1&#xff0c;則稱字符串 s1( )可以從字符串 s2 獲得。 例如&#xf…

Java求職者面試:從Spring Boot到微服務的技術深度探索

場景&#xff1a;互聯網大廠Java求職者面試 角色介紹&#xff1a; 面試官&#xff1a;技術精湛&#xff0c;負責把控面試質量。謝飛機&#xff1a;搞笑的程序員&#xff0c;偶爾能答對問題。 第一輪&#xff1a;基礎知識 面試官&#xff1a;謝飛機&#xff0c;你能簡要介紹…

榕壹云國際版短劇系統:基于Spring Boot+MySQL+UniApp的全球短劇創作平臺

一、項目背景與簡介 在短視頻行業高速發展的今天&#xff0c;短劇內容已成為全球用戶娛樂消費的新寵。為滿足市場對高質量、多樣化短劇的需求&#xff0c;我們基于Spring Boot MySQL UniApp技術棧開發了榕壹云國際版短劇系統&#xff0c;這是一款面向全球市場的短劇創作與分…

資料分享!瑞芯微RK3506(3核ARM+Cortex-A7 + ARM Cortex-M0)工業評估板硬件資料

前 言 本文主要介紹TL3506-EVM評估板硬件接口資源以及設計注意事項等內容。 RK3506J/RK3506B處理器的IO電平標準一般為1.8V、3.3V,上拉電源一般不超過3.3V或1.8V,當外接信號電平與IO電平不匹配時,中間需增加電平轉換芯片或信號隔離芯片。按鍵或接口需考慮ESD設計,ESD器…

C#通過NTP服務器獲取NTP時間

C#通過NTP服務器獲取NTP時間 注意事項&#xff1a; 如果NTP服務器地址是域名&#xff0c;如阿里云的NTP服務器地址。需要DNS解析。NTP使用UDP通訊&#xff0c;默認端口是123NTP經過很多年的發展&#xff0c;有4個版本號&#xff0c;目前常用的3和4。NTP區分客戶端和服務端&am…

使用cmd來創建數據庫和數據庫表-簡潔步驟

創建數據庫和表&#xff1a; 1. 按WinR打開“運行”&#xff0c;輸入cmd&#xff0c;回車 2. 登錄數據庫&#xff1a;mysql -u root -p 然后輸入密碼 3. 創建數據庫create database myblog; myblog為數據庫名(自定義你的數據庫名) &#xff01;注意分號不要漏了&#xff01; …

java工具類

LocalDateTime LocalDateTime可以獲取當前時間&#xff1a; LocalDateTime now LocalDateTime.now(); 同時他也可以獲取指定時間&#xff1a; LocalDateTime dateTime LocalDateTime.of(2023, 5, 15, 10, 30) 若我們時間值超出了我們的實際情況值&#xff0c;我們將會出現…

02_java的運行機制以及JDKJREJVM基本介紹

1、運行機制 2、JDK&JRE&JVM JDK 基本介紹 &#xff08;1&#xff09; JDK 的全稱(Java Development Kit Java開發工具包) JDK JRE java的開發工具 [ java, javac, javadoc, javap等 ] &#xff08;2&#xff09;JDK是提供給Java開發人員使用的&#xff0c;其…

【文心快碼】確實有點東西!

這里寫自定義目錄標題 背景 Electron 開發 Markdown 編輯器全記錄提問1&#xff1a;提問2&#xff1a;提問3&#xff1a;提問4&#xff1a;完整項目結構總結 背景 前兩天百度在2025 百度AI開發者大會"如何駕馭Coding Agent分會場"上發布了文心快碼&#xff0c;注冊試…

AI心理健康服務平臺項目面試實戰

AI心理健康服務平臺項目面試實戰 第一輪提問&#xff1a; 面試官&#xff1a; 請簡要介紹一下AI心理健康服務平臺的核心技術架構。在AI領域&#xff0c;心理健康服務的機遇主要體現在哪些方面&#xff1f;如何利用NLP技術提升用戶與AI的心理健康對話體驗&#xff1f; 馬架構…

Win10安裝 P104-100 驅動

安裝完之后總結一下, 之前做了不少功課, 在網上搜了很多教程, 視頻的文字的, 但是很多已經比較陳舊了. 最后發現的這個 GitHub 項目 NVIDIA-patcher 是最有用的, 因為這是現在這些魔改驅動的來源. NVIDIA-patcher 倉庫地址: https://github.com/dartraiden/NVIDIA-patcher 安…

把一個 PyTorch 的圖像張量轉換成 NumPy 格式,并按照正確的維度順序顯示出來

示例代碼&#xff1a; plt.imshow(np.transpose(tensor_denorm.numpy(), (1, 2, 0)))它的作用是&#xff1a;把一個 PyTorch 的圖像張量轉換成 NumPy 格式&#xff0c;并按照正確的維度順序顯示出來。 &#x1f680; 一步步解釋&#xff1a; ? tensor_denorm 這是一個形狀為…

【速寫】conda安裝(linux)

序言 昨天葉凱浩空降&#xff08;全馬241&#xff09;&#xff0c;降維打擊&#xff0c;10分24秒斷層奪冠。 夏瀟陽10分53秒絕殺小崔10分54秒第2&#xff0c;小崔第3&#xff0c;均配都在3’30"以內&#xff0c;即便我是去年巔峰期也很難跑出這種水平。我就知道他去年大…

算法題(135):唯一的雪花

審題&#xff1a; 本題需要我們對于每一組數據都找出最大的包裹大小 思路&#xff1a; 本題解析題目意思后我們可以把雪花的編號當成數組中元素的值&#xff0c;把包裹看成一個區間。 本質上就是讓我們找出一組數據中&#xff0c;所有子段中最長的子段。 方法一&#xff1a;暴力…

算法習題-力扣446周賽題解

算法可以調度思維&#xff0c;讓程序員的思維發散&#xff0c;找到更好的解決方案。 第一題&#xff1a;執行指令后的得分 題目&#xff1a; 給你兩個數組&#xff1a;instructions 和 values&#xff0c;數組的長度均為 n。你需要根據以下規則模擬一個過程&#xff1a; 從下標…

Ubuntu下MySQL的安裝

Ubuntu下MySQL的安裝 1. 查看當前操作系統版本2. 添加MySQL APT源2.1 訪問下載頁面&#xff0c;并下載發布包2.2 執行安裝指令2.3 安裝MySQL 3. 查看MySQL狀態4. 設置開機自啟動 1. 查看當前操作系統版本 通過命令lsb_release -a查看&#xff1a; 2. 添加MySQL APT源 2.1 訪問下…

航順 芯片 開發記錄 (一) 2025年4月27日19:23:32

芯片型號: HK32F030MF4P6 第一步:創建工程目錄 inc :頭文件目錄 MDK-ARM : 工程根目錄 (新建工程選擇該目錄) src :相關資源存放位置 官方函數庫相關內容 官方函數庫大致結構圖 ├─HK32F030MLib ├─CMSIS │ ├─CM0 │ │ └─Core │ │ arm_common_table…

Python 數據可視化進階:精準插入圖表到指定 Excel 工作表

Python 數據可視化進階&#xff1a;精準插入圖表到指定 Excel 工作表 在處理數據的過程中&#xff0c;我們常常需要將生成的圖表精準地插入到已存在數據的 Excel 文件的指定工作表中。借助 Python 的強大庫組合&#xff0c;這一操作得以高效實現。以下是經過優化和注釋補充的代…