隨著容器技術的發展,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
檢視以及更改配置,使用命令更改配置的同時,配置檔案也會改變。
配置檔案可以指定cluster
,namespace
,user
的配置,並設定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
複製**
配置檔案中可以寫多份配置,也可以寫deployment
,service
各種 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...