附001.kubectl介紹及使用


一 kubectl介紹

1.1 kubectl概要

kubectl控制Kubernetes集群管理器,使用Kubernetes命令行工具kubectl在Kubernetes上部署和管理應用程序。使用kubectl,您可以檢查群集資源; 創建,刪除和更新組件; 看看你的新集群; 並提出示例應用程序。
更多kubectl參考https://kubernetes.io/docs/reference/kubectl/overview/。

二 kubectl安裝

2.1 正式安裝——方式一(推薦)

  1 [root@k8s01 ~]# vi /etc/yum.repos.d/kubernetes.repo
  2 [kubernetes]
  3 name=Kubernetes
  4 baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
  5 enabled=1
  6 gpgcheck=1
  7 repo_gpgcheck=1
  8 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
  9 [root@k8s01 ~]# yum -y install kubectl
 
提示:
可替換為國內阿里雲源:
  1 [root@k8s01 ~]# vi /etc/yum.repos.d/kubernetes.repo
  2 [kubernetes]
  3 name=Kubernetes
  4 baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
  5 enabled=1
  6 gpgcheck=1
  7 repo_gpgcheck=1
  8 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
 
若國內無法導入google的源可采用阿里雲,也可采用以下方式安裝:
root@k8s01:~# sudo snap install kubectl --classic

2.2 正式安裝——方式二

  1 [root@k8s01 ~]# curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
  2 [root@k8s01 ~]#  chmod +x ./kubectl
  3 [root@k8s01 ~]# sudo mv ./kubectl /usr/local/bin/kubectl
 
附:Ubuntu安裝方式:
  1 root@k8s01:~# apt-get install -y apt-transport-https
  2 root@k8s01:~# curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
  3 root@k8s01:~# echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
  4 root@k8s01:~# apt-get update
  5 root@k8s01:~# apt-get install -y kubectl
 

參考文檔:https://kubernetes.io/docs/tasks/tools/install-kubectl/

提示:所有源都建議替換為國內阿里雲源。

2.3 添加Kubetcl命令自動補全

  1 root@k8s01:~# yum -y install bash-completion
  2 root@k8s01:~# echo "source <(kubectl completion bash)" >> ~/.bashrc
 

二 配置kubectl

kubectl若對接Kubernetes集群,需要一個kubeconfig文件,該文件在使用kube-up.sh創建集群或成功部署Minikube集群時自動創建。默認情況下,kubectl配置位於~/.kube/config。
提示:有關Minikube創建集群可參考《附002.Minikube介紹及使用》
主配置文件:~/.kube/config

三 kubectl用法簡介

3.1 常見用法

  1 [root@k8s ~]# kubectl cluster-info		#獲取群集狀態
  2 [root@k8s ~]# kubectl get nodes			#查看node節點信息
  3 [root@k8s ~]# kubectl describe node k8s-node-01	#查看某個node的詳細信息
 

3.1 相關選項及參數

語法:
kubectl [command] [TYPE] [NAME] [flags]
  • command:指定要在一個或多個資源上鎖進行的操作,如create,get,describe,delete。
  • TYPE:指定資源類型。資源類型不區分大小寫,您可以指定單數,復數或縮寫形式。例如,以下命令產生相同的輸出:
    • $ kubectl get pod pod1
    • $ kubectl get pods pod1$ kubectl get po pod1
  • NAME:指定資源的名稱。名稱區分大小寫。如果省略名稱,則顯示所有資源的詳細信息
    • $ kubectl get pods。
所有資源類型可參考:https://kubernetes.io/docs/reference/kubectl/overview/#resource-types
  • flags:指定可選標志。例如,使用-s或--server標志來指定Kubernetes API服務器的地址和端口。
注意:從命令行指定的標志會覆蓋默認值和任何相應的環境變量。
 
  1 flags:
  2 --allow-verification-with-non-compliant-keys	#允許簽名驗證者使用在技術上不符合RFC6962的密鑰
  3 --alsologtostderr				        #記錄標准錯誤以及文件
  4 --as string					        #模擬操作的用戶名
  5 --as-group stringArray			        #組要​​模擬操作,可以重復此標志來指定多個組。
  6 --azure-container-registry-config string	        #包含Azure容器注冊表配置信息的文件的路徑。
  7 --cache-dir string				        #默認HTTP緩存目錄,默認為: "/Users/zarnold/.kube/http-cache"
  8 --certificate-authority string		        #證書頒發機構的證書文件的路徑
  9 --client-certificate string			        #TLS的客戶端證書文件的路徑
 10 --client-key string				        #TLS的客戶端密鑰文件的路徑
 11 --cloud-provider-gce-lb-src-cidrs cidrs	        #在GCE防火牆中打開的允許網段,用於LB流量代理和運行狀況檢查。默認為:130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16
 12 --cluster string				        #要使用的kubeconfig中的群集名稱
 13 --context string				        #要使用的kubeconfig上下文的名稱
 14 -default-not-ready-toleration-seconds int           #表示notReady的容忍度的絕對值:NoExecute默認情況下添加到尚未具有此類容差的每個容器中,默認為: 300。
 15 --default-unreachable-toleration-seconds int        #表示容忍無法訪問的容忍度:默認情況下,NoExecute添加到尚未具有此容忍度的每個容器中,默認為: 300
 16 -h, -help					        #kubectl幫助
 17 --insecure-skip-tls-verify			        #如果為true,則不會檢查服務器的證書的有效性,這將使您的HTTPS連接不安全
 18 --kubeconfig string				        #用於CLI請求的kubeconfig文件的路徑。
 19 --log-backtrace-at traceLocation		        #當記錄命中行文件時:N,發出堆棧跟蹤,默認值:: 0
 20 --log-dir string				        #如果非空,則在此目錄中寫入日志文件
 21 --log-flush-frequency duration     		        #日志刷新之間的最大秒數,默認為: 5s
 22 --logtostderr     Default: true			#記錄標准錯誤而不是文件
 23 --match-server-version				#要求服務器版本與客戶端版本匹配
 24 -n, --namespace string				#如果存在,則為此CLI請求的命名空間范圍
 25 --request-timeout string     			#放棄單個服務器請求之前等待的時間長度。非零值應包含相應的時間單位(例如1s,2m,3h)。值為零表示不超時請求,默認為: "0"。
 26 -s, --server string				        #Kubernetes API服務器的地址和端口
 27 --stderrthreshold severity     			#等於或高於此閾值的日志轉到stderr,默認為: 2
 28 --token string					#用於對API服務器進行身份驗證的承載令牌
 29 --user string					#要使用的kubeconfig用戶的名稱
 30 -v, --v Level					#V日志的日志級別
 31 --version version[=true]			        #打印版本信息並退出
 32 --vmodule moduleSpec				#逗號分隔的模式列表=文件篩選日志記錄的N設置

更多Kubetcl使用參考:https://kubernetes.io/docs/reference/kubectl/kubectl/

https://kubernetes.io/docs/reference/kubectl/overview/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM