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 常用命令详解


分享到:


相關文章: