附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/node

提示:全部源都建議替換爲國內阿里雲源。

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/linux

https://kubernetes.io/docs/reference/kubectl/overview/
相關文章
相關標籤/搜索