k8s 常用命令詳解

前言

上次教程我們已經搭建好了kubernetes集群了,現在我們就實踐演練一下常用的kubectl命令吧。今天主要講解deployment,replicaset,daemonset。

kubectl 命令詳解 deployment

創建nginx.yml

nginx.yml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
template:
metadata:
labels:
app: web_server
spec:
containers:
- name: nginx
image: nginx:1.7.9
nodeSelector:
disktype: xfs

參數解釋:

apiVersion 當前配置格式的版本

kind 要創建的資源類型

metadata 該資源的元數據

spec 該deployment的規格說明

replicas 副本數的數量,默認為1

template 定義Pod模板

metadata 定義Pod的元數據

spec 該Pod的規格說明

nodeSelector 選擇節點

資源

創建deployment資源

kubectl apply -f nginx.yml

刪除deployment資源

kubectl delete -f nginx.yml

查看deployment資源(簡略)

這是用來查看名為 nginx-deployment 的 deployment 的狀態。說白了就是看nginx的部署狀態。

kubectl get deployment

k8s 常用命令詳解

參數解釋

DESIRED: 期望部署副本數

CURRENT: 當前部署副本數

UP-TO-DATE:最新部署副本數

AVAILBLE: 運行中的副本數

AGE: 已經運行的時間

查看deployment資源(較詳細)

獲取再詳細點的nginx的部署狀態

kubectl get deployment -o wide

k8s 常用命令詳解

參數解釋

CONTAINERS: 運行的容器

IMAGES: 容器的鏡像

SELECTOR: 調度規則

查看deployment資源(非常詳細)

獲取非常詳細的nginx的部署狀態

kubectl describe deployment nginx-deployment

k8s 常用命令詳解

參數解釋

Name deployment 名

Namespace 命名空間

CreationTimestamp 創建時間

Labels 標籤

Annotations 註釋

Selector 調度規則

Replicas 副本

StrategyType 策略類型

MinReadySeconds 最小準備時間

RollingUpdateStrategy 滾動更新策略

Pod Template pod模板

Conditions 條件

OldReplicaSets 舊的副本數

NewReplicaSets 新的副本數

Events: Deployment的執行日誌

kubectl 命令詳解 - replicaset

實際上Deployment是通過replicaset來管理pod的

資源

查看replicaset資源(簡略)

查看副本數

kubectl get replicaset

k8s 常用命令詳解

參數解釋

NAME 副本名

DESIRED 期望部署副本數

CURRENT 當前部署副本數

READY 準備好的副本數

AGE 已經運行的時間

查看replicaset資源(較詳細)

kubectl get replicaset

k8s 常用命令詳解

參數解釋

CONTAINERS 運行的容器

IMAGES: 容器的鏡像

SELECTOR 調度規則

查看replicaset資源(非常詳細)

kubectl describe replicaset nginx-deployment-57f56449d9

k8s 常用命令詳解

參數解釋

Name deployment 名

Namespace 命名空間

Selector 調度規則

Labels 標籤

Annotations 註釋

Controller By 指明是由deployment創建

Replicas 副本

Pods Status Pod狀態

Pod Template Pod模板

Events: Deployment的執行日誌

kubectl 命令詳解 - DaemonSet

DaemonSet 和 Deployment 的區別:

DaemonSet 每個node最多隻允許一個副本

Deployment 每個node可運行多個副本

DaemonSet 應用場景

  1. 集群的每個節點運行存儲 Daemon 。 例如:ceph
  2. 集群的每個節點運行日誌收集 Daemon 。 例如: logstash
  3. 集群的每個節點運行監控 Daemon 。例如: collectd

資源

由於DaemonSet的特性,k8s的kube-proxy就是這類資源。由於kube-proxy資源是屬於kube-system命名空間的,所以我們要指明 -n kube-system(或者 --namespace=kube-system)

查看daemonset 資源(簡略)

kubectl -n kube-system get daemonset

k8s 常用命令詳解

查看daemonset 資源(較詳細)

kubectl -n kube-system get daemonset -o wide

k8s 常用命令詳解

查看daemonset 資源(非常詳細)

kubectl -n kube-system describe daemonset

k8s 常用命令詳解

查看 kube-proxy 的yaml文件

kubectl -n kube-system edit daemonset kube-proxy

k8s 常用命令詳解


分享到:


相關文章: