一 kubectl介紹 1.1 kubectl概要 kubectl控制Kubernetes集群管理器,使用Kubernetes命令行工具kubectl在Kubernetes上部署和管理應用程式。使用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。
- 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/