面向業務開發者的 k8s 基本命令

2021-09-11 10:53:53 字數 2919 閱讀 6940

隨著容器技術的發展,k8s 也越來越火熱。在網路上有許多關於 k8s 的文章,但大部分都是關於集群部署相關的,

而這篇文章主要講作為應用開發者如何使用 k8s 。

brew install kubectl

複製**

k8s 集群,一般生產環境有乙個 cluster 集群,測試環境有乙個 cluster 集群。

在乙個 cluster 會有不同的 namespace,可以區分不同的業務團隊。

pod 是 k8s 中最小的可部署單元。一般乙個 pod 執行乙個 container,但是有時也會執行多個 container。類似 docker-compose。

deployment 用來控制 pod,比如控制乙個應用起幾個 pod。

關於 k8s 的配置檔案位置在~/.kube/config。另外也可以使用命令kubectl config檢視以及更改配置,使用命令更改配置的同時,配置檔案也會改變。

配置檔案可以指定clusternamespaceuser的配置,並設定context。以下是乙個簡版的配置檔案。

# 該配置檔案配置了乙個使用者 shanyue,乙個集群 dev,並且設定了 dev 的 context

apiversion:

v1clusters:

- cluster:

certificate-authority:

/users/shanyue/.minikube/ca.crt

server:

name:

devcontexts:

- context:

cluster:

devnamespace:

business

user:

shanyue

name:

devcurrent-context:

devkind:

config

preferences:

{}users:

- name:

shanyue

user:

client-certificate:

/users/shanyue/.minikube/client.crt

client-key:

/users/shanyue/.minikube/client.key

複製**

其中current-context代表當前上下文,也可以通過以下命令來設定上下文。

#

檢視配置

kubectl config view

#檢視集群列表

kubectl config get-clusters

#檢視 context 列表

kubectl config get-contexts

#設定當前 context

kubectl config use-context dev

複製**

kubectl create代表根據檔案建立資源,可以是 deployment,也可以是 pod。

kubectl run代表根據映象建立資源。

kubectl run --image=k8s.gcr.io/echoserver:1.10 --port=8080

複製**

配置檔案中可以寫多份配置,也可以寫deploymentservice各種 kind 配置。以下是以 node 作為伺服器語言樣例的配置。

apiversion:

v1kind:

service

metadata:

name:

namespace:

devlabels:

name:

spec:

ports:

- port:

8080

targetport:

8080

protocol:

tcpselector:

name:

---apiversion:

extensions/v1beta1

kind:

deployment

metadata:

name:

namespace:

devlabels:

name:

spec:

template:

metadata:

labels:

name:

spec:

containers:

- name:

image:

node

imagepullpolicy:

always

env:

- name:

port

value:

"8080"

ports:

- containerport:

8080

複製**

#

獲取當前 context 下所有的 deployment

kubectl get deployments

#獲取當前 context 下所有的 pod

kubectl get pods

#獲取當前 cluster 下所有的 pod

kubectl get pods --all-namespaces

#獲取特定 pod 的狀態

#進入某個 pod 容器裡邊的命令列

#檢視某個 pod 的日誌

複製**

k8s 命令 重啟 k8s基本命令

kubernetes 常用命令 通過yaml檔案建立 kubectl create f yaml 不建議使用,無法更新,必須先delete 通過yaml檔案刪除 kubectl delete f yaml 檢視kube system namespace下面的pod svc deployment 等等...

kubectl操作k8s的基本命令

命令太多,有時候忘記了,這裡做個記錄。kubectl缺省會去找 root kube config檔案,config檔案內存放的是k8s的集群認證資訊,當然也可以使用命令去指定改檔案的路徑。kubectl命令中,pod和pods等價,deploy和deployment等價,也就是說命令中替換使用效果一...

k8s檢視集群資訊及基本命令

集群資訊的各種檢視基本上是在master節點操作 kubectl get nodes kubectl get node ip 節點ip可以用空格隔開寫多個 kubectl get service kubectl get pods all namespaces 或者kubectl get pods a...