【Kubernetes】k8s 的基本使用指令

圖片

今天分享如題:

Kubernetes

?

? ?

?

最近更新緩慢由于工作太忙惹,忙里偷閑整理愿能與君共勉💪

K8S對我來說是個新的技術棧,程序員就是需要一直充電🔋

加油,一起進步💪

結構模型

k8s 是經典的一對多模型,有一個主要的管理節點master和許多的工作節點slaver。當然,k8s 也可以配置多個管理節點,擁有兩個以上的管理節點被稱為?高可用。k8s 包括了許多的組件,每個組件都是單運行在一個docker容器中,然后通過自己規劃的虛擬網絡相互訪問。你可以通過kubectl get pod -n kube-system查看所有節點上的組件容器。

在管理節點中會比工作節點運行更多的 k8s 組件,我們就是靠著這些多出來的組件來對工作節點發號施令。他們都叫什么這里就不詳細提了。反正對于”基本使用“來說,這些名字并不重要。

理念

要想理解一個東西就要先明白它的內在理念。通俗點就是,k8s 做了什么?為了提供更加可靠的服務,就要增加服務器的數量,減少每個服務器的體量來平攤負載,而越來越多的虛擬機就會帶來越來越高的運維成本。如何讓少量的運維人員就可以管理數量眾多的服務器及其上的服務呢?這就是 k8s 做的工作。

k8s 把數量眾多的服務器重新抽象為一個統一的資源池,對于運維人員來說,他們面前沒有服務器1、服務器2的概念,而是一個統一的資源池,增加新的服務器對運維人員來說,只是增加自資源池的可用量。不僅如此,k8s 把所有能用的東西都抽象成了資源的概念,從而提供了一套更統一,更簡潔的管理方式。

接下來,我會把每個基本命令來逐一進行介紹,并輔以介紹一些基本概念。本文介紹的命令涵蓋了增刪改查四方面,可參加下面表格,因為篇幅較長,我們將create及之后的不那么常用的命令放在下一篇文章里講:

命令名類型作用
get列出某個類型的下屬資源
describe查看某個資源的詳細信息
logs查看某個 pod 的日志
create新建資源
explain查看某個資源的配置項
delete刪除某個資源
edit修改某個資源的配置項
apply應用某個資源的配置項

kubectl get 列出資源!

接下來進入正題,首先來了解一下 k8s 中最最最常用的命令kubectl get,要記住,k8s 把所有的東西都抽象成了資源,而kubectl get就是用來查看這些資源的。最常見的資源就是 pod 。

什么是 pod?

pod(豆莢)。pod 的概念其實和docker中的容器非常相似。他是 k8s 中的最小工作單位。你可以把 pod 理解成一個一個的小機器人,而 k8s 抽象出來的大資源池就是他們的工廠。

pod?和?docker?容器的關系?

pod 將一個或多個docker容器封裝成一個統一的整體進行管理并對外提供服務。

不僅我們自己的服務是要包裝成 pod 的,就連 k8s 自己也是運行在一堆 pod 上。接下來就讓我們查看一下 k8s 的 pod :

?

kubectl get pod -n kube-system

-n參數指定了要查看哪個命名空間下的 pod 。k8s 所有的 pod 都被放置在kube-system命名空間下。

什么是命名空間?

命名空間namespace,是 k8s 中”組“的概念,提供同一服務的 pod 就應該被放置同一命名空間下,而不是混雜在一起。k8s 可以用命名空間來做權限控制。如果不指定的話, pod 將被放置在默認的命名空間default下。

執行了kubectl get pod -n kube-system命令后,你就可以看到如下內容:

其中每一行就是一個資源,這里我們看到的資源是 pod 。你看到的 pod 數量可能和我的不一致,因為這個列表里包含了 k8s 在所有節點上運行的 pod ,你加入的節點越多,那么顯示的 pod 也就越多。我們來一列一列的看:

NAME:第一列是 pod 的名字,k8s 可以為 pod 隨機分配一個五位數的后綴。

READY:第二列是 pod 中已經就緒的 docker 容器的數量,上文中我們提到了,pod 封裝了一個或多個 docker 容器。在這里,1/1的含義為就緒1個容器/共計1個容器

STATUS:第三列是 pod 的當前狀態,下面是一些常見的狀態:

?

狀態名含義
Running運行中
Error異常,無法提供服務
Pending準備中,暫時無法提供服務
Terminaling結束中,即將被移除
Unknown未知狀態,多發生于節點宕機
PullImageBackOff鏡像拉取失敗

RESTART:k8s 可以自動重啟 pod,這一行就是標記了 pod 一共重啟了多少次。

AGE:pod 一共存在了多長時間。

?

  • kubectl get可以列出 k8s 中所有資源

這里只介紹了如何用kubectl獲取 pod 的列表。但是不要把getpod綁定在一起,pod 只是 k8s 中的一種服務,你不僅可以get pod,還可以get svc(查看服務)、get rs(查看副本控制器)、get deploy(查看部署)等等等等,雖然說kubectl get pod是最常用的一個,但是如果想查看某個資源而又不知道命令是什么,kbuectl get <資源名>就對了。

如果你想看更多的信息,就可以指定-o wide參數,如下:

?

kubectl get pod -n kube-system -o wide

加上這個參數之后就可以看到資源的所在ip和所在節點node了。

記得加上?-n

-n可以說是kubectl get命令使用最頻繁的參數了,在正式使用中,我們永遠不會把資源發布在默認命名空間。所以,永遠不要忘記在get命令后面加上-n

小結

kubectl get命令可以列出 k8s 中的資源,而kubectl get pod是非常常用的查看 pod 的命令。而-n參數則可以指定 pod 所在的命名空間。

  • kubectl describe 查看詳情!

kubectl describe命令可以用來查看某一資源的具體信息,他同樣可以查看所有資源的詳情,不過最常用的還是查看 pod 的詳情。他也同樣可以使用-n參數指定資源所在的命名空間。

舉個例子,我們可以用下面命令來查看剛才 pod 列表中的某個 pod,注意不要忘記把 pod 名稱修改成自己的:

?

kubectl describe pod kube-flannel-ds-amd64-2d6tb -n kube-system

然后你就可以看到很多的信息,咱們分開說,首先是基本屬性,你可以在詳細信息的開頭找到它:

基本屬性

  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
# 實例名稱Name:           kube-flannel-ds-amd64-2d6tb# 所處命名空間Namespace:      kube-system# 所在節點Node:           worker2/192.168.56.22# 啟動時間Start Time:     Wed, 03 Jul 2019 09:31:50 +0000# 標簽Labels:         app=flannel                controller-revision-hash=bfc6b6dd4                pod-template-generation=2                tier=node# 注解Annotations:    <none># 當前狀態Status:         Running# 所在節點 IPIP:             192.168.56.22# 由那種資源生成 / 控制Controlled By:  DaemonSet/kube-flannel-ds-amd64

其中幾個比較常用的,例如NodelabelsControlled By。通過Node你可以快速定位到 pod 所處的機器,從而檢查該機器是否出現問題或宕機等。通過labels你可以檢索到該 pod 的大致用途及定位。而通過Controlled By,你可以知道該 pod 是由那種 k8s 資源創建的,然后就可以使用kubectl get <資源名>來繼續查找問題。例如上文DaemonSet/kube-flannel-ds-amd64,就可以通過kubectl get DaemonSet -n kube-system來獲取上一節資源的信息。

內部鏡像信息

在中間部分你可以找到像下面一樣的Containers段落。該段落詳細的描述了 pod 中每個 docker 容器的信息,常用的比如Image字段,當 pod 出現?ImagePullBackOff錯誤的時候就可以查看該字段確認拉取的什么鏡像。其他的字段名都很通俗,直接翻譯即可。

  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
Containers:  kube-flannel:    Container ID:  docker://25d2c4896847bbf53735c57a60c5b3146e2b3a0f86811074bcd28a8291213c18    Image:         quay.io/coreos/flannel:v0.11.0-amd64    Image ID:      docker://sha256:ff281650a721f46bbe2169292c91031c66411554739c88c861ba78475c1df894    Port:          <none>    Host Port:     <none>    Command:      /opt/bin/flanneld    Args:      --ip-masq      --kube-subnet-mgr      --iface=enp0s8    State:          Running??????Started:??????Wed,?03?Jul?2020?09:31:53?+0000    Ready:          True    Restart Count:  0    Limits:      cpu:     100m      memory:  50Mi    Requests:      cpu:     100m      memory:  50Mi    Environment:      POD_NAME:       kube-flannel-ds-amd64-2d6tb (v1:metadata.name)      POD_NAMESPACE:  kube-system (v1:metadata.namespace)    Mounts:      /etc/kube-flannel/ from flannel-cfg (rw)      /run from run (rw)      /var/run/secrets/kubernetes.io/serviceaccount from flannel-token-fsqdv (ro)

事件

describe查看詳情的時候,最常用的信息獲取處就是這個Event段落了,你可以在介紹內容的末尾找到它,如下:

?

Events:          <none>

是的,如果你看到上面這樣,沒有任何Events的話,就說明該 pod 一切正常。當 pod 的狀態不是Running時,這里一定會有或多或少的問題,長得像下面一樣,然后你就可以通過其中的信息分析 pod 出現問題的詳細原因了:

  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
Events:  Type     Reason                  Age                 From              Message  ----     ------                  ----                ----              -------  Normal   Killing                 29m                 kubelet, worker1  Stopping container kube-flannel  Warning  FailedCreatePodSandBox  27m (x12 over 29m)  kubelet, worker1  Failed create pod sandbox: rpc error: code = Unknown desc = failed to create a sandbox for pod "kube-flannel-ds-amd64-9trbq": Error response from daemon: cgroup-parent for systemd cgroup should be a valid slice named as "xxx.slice"  Normal   SandboxChanged          19m (x48 over 29m)  kubelet, worker1  Pod sandbox changed, it will be killed and re-created.  Normal   Pulling                 42s                 kubelet, worker1  Pulling image "quay.io/coreos/flannel:v0.11.0-amd64"

小結

kubectl describe <資源名> <實例名>可以查看一個資源的詳細信息,最常用的還是比如kubectl describe pod <pod名> -n <命名空間>來獲取一個 pod 的基本信息。如果出現問題的話,可以在獲取到的信息的末尾看到Event段落,其中記錄著導致 pod 故障的原因。

  • kubectl logs 查看日志!

如果你想查看一個 pod 的具體日志,就可以通過kubectl logs <pod名>來查看。注意,這個只能查看 pod 的日志。通過添加-f參數可以持續查看日志。例如,查看kube-system命名空間中某個flannel?pod 的日志,注意修改 pod 名稱:

?

kubectl logs -f -n kube-system kube-flannel-ds-amd64-2d6tb

然后就可以看到如下輸出:

  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
  • ?
E0706 06:55:15.848891       1 reflector.go:201] github.com/coreos/flannel/subnet/kube/kube.go:310: Failed to list *v1.Node: Get https://10.96.0.1:443/api/v1/nodes?resourceVersion=0: dial tcp 10.96.0.1:443: connect: connection refusedE0706 06:55:16.948058       1 reflector.go:201] github.com/coreos/flannel/subnet/kube/kube.go:310: Failed to list *v1.Node: Get https://10.96.0.1:443/api/v1/nodes?resourceVersion=0: dial tcp 10.96.0.1:443: connect: connection refusedE0706 06:55:17.949165       1 reflector.go:201] github.com/coreos/flannel/subnet/kube/kube.go:310: Failed to list *v1.Node: Get https://10.96.0.1:443/api/v1/nodes?resourceVersion=0: dial tcp 10.96.0.1:443: connect: connection refusedE0706 06:55:18.954108       1 reflector.go:201] github.com/coreos/flannel/subnet/kube/kube.go:310: Failed to list *v1.Node: Get https://10.96.0.1:443/api/v1/nodes?resourceVersion=0: dial tcp 10.96.0.1:443: connect: connection refusedE0706 06:55:19.955267       1 reflector.go:201] github.com/coreos/flannel/subnet/kube/kube.go:310: Failed to list *v1.Node: Get https://10.96.0.1:443/api/v1/nodes?resourceVersion=0: dial tcp 10.96.0.1:443: connect: connection refusedE0706 06:55:21.046592       1 reflector.go:201] github.com/coreos/flannel/subnet/kube/kube.go:310: Failed to list *v1.Node: Get https://10.96.0.1:443/api/v1/nodes?resourceVersion=0: dial tcp 10.96.0.1:443: connect: connection refusedE0706 06:55:22.048285       1 reflector.go:201] github.com/coreos/flannel/subnet/kube/kube.go:310: Failed to list *v1.Node: Get https://10.96.0.1:443/api/v1/nodes?resourceVersion=0: dial tcp 10.96.0.1:443: connect: connection refusedE0706 06:55:23.147040       1 reflector.go:201] github.com/coreos/flannel/subnet/kube/kube.go:310: Failed to list *v1.Node: Get https://10.96.0.1:443/api/v1/nodes?resourceVersion=0: dial tcp 10.96.0.1:443: connect: connection refusedE0706 06:55:24.148350       1 reflector.go:201] github.com/coreos/flannel/subnet/kube/kube.go:310: Failed to list *v1.Node: Get https://10.96.0.1:443/api/v1/nodes?resourceVersion=0: dial tcp 10.96.0.1:443: connect: connection refusedE0706 06:55:25.247352       1 reflector.go:201] github.com/coreos/flannel/subnet/kube/kube.go:310: Failed to list *v1.Node: Get https://10.96.0.1:443/api/v1/nodes?resourceVersion=0: dial tcp 10.96.0.1:443: connect: connection refusedE0706 06:55:26.248831       1 reflector.go:201] github.com/coreos/flannel/subnet/kube/kube.go:310: Failed to list *v1.Node: Get https://10.96.0.1:443/api/v1/nodes?resourceVersion=0: dial tcp 10.96.0.1:443: connect: connection refusedE0706 06:55:27.347224       1 reflector.go:201] github.com/coreos/flannel/subnet/kube/kube.go:310: Failed to list *v1.Node: Get https://10.96.0.1:443/api/v1/nodes?resourceVersion=0: dial tcp 10.96.0.1:443: connect: connection refusedE0706 06:55:28.348182       1 reflector.go:201] github.com/coreos/flannel/subnet/kube/kube.go:310: Failed to list *v1.Node: Get https://10.96.0.1:443/api/v1/nodes?resourceVersion=0: dial tcp 10.96.0.1:443: connect: connection refusedE0706 06:55:29.350578       1 reflector.go:201] github.com/coreos/flannel/subnet/kube/kube.go:310: Failed to list *v1.Node: Get https://10.96.0.1:443/api/v1/nodes?resourceVersion=0: dial tcp 10.96.0.1:443: connect: connection refused...

如果你發現某個 pod 的服務有問題,但是狀態還是顯示Running,就可以使用kubectl logs來查看其詳細日志。

總結

在本篇文章里,我們了解了 k8s 的宗旨和一些基本概念,并知道了最為常用的getdescibelogs命令,知道了這三條命令之后就幾乎可以從 k8s 中獲取所有常用信息了。

📌上周分享的Kbuernetes跳轉地址:

圖片

希望我們都能對生活保持熱愛?

以下為之前分享的寶藏內容

?


?

?

我認為資料的價值在于能用、好用,不是滿足人的占有欲和獲得感。所以,也請各位擦亮雙眼,提高標準。得到的同時記得他的價值所在,收獲的同時,也請做好擇優標準。BTW,學長做的不好的地方,歡迎你們提出來,又或者如果屏幕前的你將更好的資源拿出分享,那真的十分優秀,也希望各位能無私互助。獲取資料不強制轉發。

希望學長分享的內容對你我都有幫助💪


?

Pandas系列文章

?

圖片

?

Pandas系列文章

【技術分析】數據處理工具Pandas 下

【技術分析】數據處理工具Pandas?上

?PART2分享文章

?

  • 【習慣法則】所有的習慣養成都遵循21天法則?

  • 【學長雜談】積極廢人?自救指南

  • 【分享】后廠村鮮為人知的一面

  • 【分享】HI,好久不見的學長

  • 【測試開發】分享測試開發工程師的內心獨白

  • 【AI】代碼自動補全神器,KITE?

  • 【影視分享】看諾蘭新片《信條》前還需要做哪些準備工作

  • 【面試經歷】有關于-ByteDance. -01字節奇緣

  • 【面試經驗】學長一面百度-經驗分享

  • 【學習資源】python課程分享_建議分享+收藏

  • 【夏季八談】擺攤吧,后浪

?

"生活是苦難的,我又劃著我的斷槳出發了”

?

?

PS:公號內回復 :學長微信,即可聯系到我!

?

 
 
 

覺得內容不錯的 歡迎點擊「在看」支持 謝謝各位

?

我也希望這個世界會因為分享而更美好!

單純分享,無任何利益相關!


?

最后分享一下個人博客以及個人攝影網站📷

www.WakeMeUpNow.cn

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

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

相關文章

php是如何工作的

a:前提條件: apache服務器啟動正常工作 b:客戶端瀏覽器在地址欄輸入一個程序地欄 按回車發送請求 {請求}http://127.0.0.1/day03/1.php c:apache接收請求&#xff0c;并且負責查找相應資源1.php d:如果apache沒有找到相應的資源,返回錯誤消息給客戶端瀏覽器404 NOT FOUND e:如果…

c語言 malloc_C語言快速入門——動態內存分配

在前面一系列的字符串操作中&#xff0c;我們都是先定義一個固定大小的字符數組&#xff0c;然后根據所需&#xff0c;或拷貝、或連接、或格式化來為這個數組提供內容。固定大小的數組意味著在程序運行期間&#xff0c;數組所占用的內存是確定的(即劃分了固定數量的內存)&#…

FFMPEG設置 cbr討論

Q:我采用ffmpeg調用x264一直出錯&#xff0c;命令如下ffmpeg -s 352x288 -r 50 -pix_fmt yuv420p -i tmp.yuv tmp.h264可不可以給點建議&#xff0c;找了很久也沒有找到解決辦法&#xff0c;錯誤時error while opening encoder for output stream 0.0 maybe incorrect parame…

博文聲明

本博客用于分享學習筆記 歡迎大神指正&#xff0c;我們互相學習交流&#xff0c;共同成長進步&#xff01; 博客首頁:秋葉夏風的博客

【經驗分享】工程開發與Coding規范

今天分享分為兩部分 :) PART01 工程開發代碼規范分享/ PART02 關于某易云自動簽到聽歌分享- 5Mins DevCoding Rule: PART 1 了解真實工程開發&#x1f3d7;..... 本篇內容分享的宗旨: 學長工作經驗之談僅作分享&#x1f3f7; Ready,Go 代碼管理——工具篇 ?工程上首先需要…

過濾器與攔截器區別

過濾器與攔截器區別 參考&#xff1a;http://www.cnblogs.com/dreamroute/p/4198087.html?utm_sourcetuicool 過濾器 過濾器是一個程序&#xff0c;它先于與之相關的servlet或JSP頁面運行在服務器上。它是隨你的web應用啟動而啟動的&#xff0c;只初始化一次&#xff0c;以后就…

二進制-高效位運算

數獨 數獨是介紹位運算的好例子&#xff0c;運用位運算和不運用效率差別還是挺大的。我們先看數獨需求: 1、當前數字所在行數字均含1-9&#xff0c;不重復 2、當前數字所在列數字均含1-9&#xff0c;不重復 3、當前數字所在宮&#xff08;即3x3的大格&#xff09;數字均含1-9&a…

pytorch resnet50_PyTorch終于能用上谷歌云TPU,推理性能提升4倍,我們該如何薅羊毛?...

曉查 發自 凹非寺量子位 報道 | 公眾號 QbitAIFacebook在PyTorch開發者大會上正式推出了PyTorch 1.3&#xff0c;并宣布了對谷歌云TPU的全面支持&#xff0c;而且還可以在Colab中調用云TPU。之前機器學習開發者雖然也能在Colab中使用PyTorch&#xff0c;但是支持云TPU還是第一次…

x264里的2pass指的是什么意思? x264源代碼分析2.encode()

A:x264里的2pass指的是什么意思?另外stat是什么意思, 比如有個參數--stats <string> Filename for 2 pass stats [/"%s/"]/n", defaults->rc.psz_stat_out );stats在這是什么意思? 2pass是2次編碼的意思&#xff0c;stats是統計文檔的名稱&a…

項目啟動居然如此重要!

項目的啟動階段比較短&#xff0c;項目經理往往容易忽視這個階段&#xff0c;但是&#xff0c;項目的啟動卻具有著重要的意義。 定基調&#xff1a; 基調包括工作的節奏、團隊氛圍和溝通風格等。 一首歌的第一句決定了這首歌的基調&#xff0c;如何唱好這第一句就是項目啟動所要…

mysql數據庫導入導出文件sql文件

window下 1.導出整個數據庫 mysqldump -u 用戶名 -p 數據庫名 > 導出的文件名 mysqldump -u dbuser -p dbname > dbname.sql 2.導出一個表 mysqldump -u 用戶名 -p 數據庫名 表名> 導出的文件名 mysqldump -u dbuser -p dbname users> dbname_users.sql 3.導出…

Android Studio主題設置、顏色背景配置

2019獨角獸企業重金招聘Python工程師標準>>> color-themes 效果展示 打開http://color-themes.com/有很多樣式可供選擇 1. Monokai Sublime Text 3(color theme) 2. Solarized Light (color theme) 3. Visual Studio 2015 Dark(color theme) 導入方式 下載主…

JavaScript中的函數

js函數 *第一種是使用function語句定義函數 function abc(){alert(abc); }*第二種是在表達式中定義函數 var 函數名 function\(參數1&#xff0c;參數2&#xff0c;…\){函數體};//例如&#xff1a;//定義var add function\(a,b\){return ab;}//調用函數document.write\(a…

x264源代碼分析1。fread()

相關說明:1. 使用版本: x264-cvs-2004-05-11 2. 這次的分析基本上已經將代碼中最難理解的部分做了闡釋,對代碼的主線也做了剖析,如果這個主線理解了,就容易設置幾個區間,進行分工閱讀,將各個區間擊破了. 3. 需要學習的知識:a) 編碼器的工作流程.b) H.264的碼流結構,像x264_sp…

在centos下安裝pycrypto報錯 RuntimeError: autoconf error

解決&#xff1a;yum -y install gcc File "/usr/lib64/python3.6/distutils/dist.py", line 974, in run_command cmd_obj.run() File "/usr/lib64/python3.6/distutils/command/build.py", line 135, in run self.run_command(cm…

Java多線程實現異步調用

在Java平臺,實現異步調用的角色有如下三個角色&#xff1a;調用者、 提貨單 、真實數據&#xff0c;一個調用者在調用耗時操作,不能立即返回數據時,先返回一個提貨單 .然后在過一斷時間后憑提貨單來獲取真正的數據.去蛋糕店買蛋糕&#xff0c;不需要等蛋糕做出來(假設現做要很長…

sql server 2008 r2卸載重裝_免費下載:Intouch軟件、Windows操作系統、SQL數據庫,VB6.0、C#...

為大家整理了常用的Windows操作系統和安裝軟件&#xff0c;基本上都是經過我們項目測試OK的版本&#xff0c;以后項目調試就齊全了&#xff0c;不用再“東奔西走”&#xff0c;“小鹿亂撞”了。整理不易&#xff0c;若對您有幫助請關注并轉發&#xff0c;以便幫助到更多的人。I…

Android ToolBar 使用完全解析

ToolBar簡介 ToolBar是Android 5.0推出的一個新的導航控件用于取代之前的ActionBar&#xff0c;由于其高度的可定制性、靈活性、具有Material Design風格等優點&#xff0c;越來越多的應用也用上了ToolBar&#xff0c;比如常用的知乎軟件其頂部導航欄正是使用ToolBar。官方考慮…

【零散積累】傳輸文件(sz/rz/scp命令)

來自wiki遷移頁面路徑&#xff1a;劉旺的主頁 / 個人零散積累 / 01> 傳輸文件&#xff08;sz/rz/scp命令&#xff09; 工作中的傳輸文件會出現在linux之間&#xff0c;或者linux與windows之間。 一、怎么實現linux與windows之間的文件傳輸&#xff1f; 1.sz和rz是什么 s…

x264_macroblock_cache_load()

功能:完成將已編碼數據參數和待編碼數據裝入到h->mb.cache中,下圖是BUF中存儲的數據在以MB為單位的時候的存儲順序 x264_macroblock_cache_load( h, i_mb_x, i_mb_y );//是把當前宏塊的up宏塊和left宏塊的intra4x4_pred_mode&#xff0c;non_zero_count加載進來&#xff0c…