K8S常用命令

常用命令

清除exit容器

sudo docker rm `docker ps -a|grep Exited|awk ' {print $1}'`

查看kube当前配置

# 查看所有模块
kubectl get configmaps -A
kubectl get cm -A
# 查看kube-proxy配置
kubectl get cm kube-proxy -n kube-system -o yaml

查看api版本

kubectl api-versions 

查看现有namespace

kubectl get namespace

node

# 打印所有节点
kubectl get nodes
kubectl get nodes -o wide

# 打印节点详细信息
kubectl describe nodes
kubectl describe node <node name>

service

# service可简写为svc
kubectl get service
kubectl get service -o wide

deployment

# deployment可简写deploy
kubectl get deployment
kubectl get deployment -o wide

pod

# 打印pod
kubectl get pods
kubectl get pods -o wide
# 打印kube-system命名空间内的pods
kubectl get pods -o wide -n kube-system
# 动态监控pods状态
kubectl get pods -w

# 打印pods详细信息
kubectl describe pods
kubectl describe nodes <pod name>

# 查看更详细
kubectl get all

查看calico pods状态

kubectl get pod -n kube-system -o wide | grep calico

pod部署

命令行部署pod示例

kubectl create deployment nginx-app --image=nginx --replicas 2
kubectl expose deployment nginx-app --name=nginx-web-svc --type NodePort --port 80 --target-port 80
# 查看服务
# kubectl describe service nginx-web-svc
kubectl describe svc nginx-web-svc

删除pods

# 删除deployment
kubectl delete deploy nginx-app
# 删除service
kubectl delete svc nginx-web-svc

使用yaml文件创建pod

# kubectl api-versions  查看版本
# mkdir demo
# cd demo

# vim nginx-deployment.yaml
apiVersion: apps/v1         # api版本
kind: Deployment            # 类型 控制器
metadata:                   # 摘要信息描述
  name: nginx-deployment
  labels:                   # 标签
    app: nginx
spec:                       # 选择器
  replicas: 3               # 定义副本数量
  selector:
    matchLabels:            # 匹配标签
      app: nginx
  template:                 # 模板
    metadata: 
      labels:
        app: nginx
    spec:
      containers:           # 定义容器
      - name: nginx         # 容器名称
        image: nginx:1.15.4 # 选择镜像
        ports:
        - containerPort: 80 # 容器端口

# 通过执行yaml文件 进行pod资源的创建
# kubectl create -f nginx-deployment.yaml
# kubectl get pods

使用yaml创建service,才能对外提供服务

# vim nginx-service.yaml
apiVersion: v1          # API版本
kind: Service           # service类型
metadata:
  name: nginx-service   # serivice资源名称
  labels:
    app: nginx
spec:
  type: NodePort        # 指明哪种类型发布出去,对外提供服务
  ports:
  - port: 80            # 指定内部端口80
    targetPort: 80      # 对外提供映射端口80
  selector:             # 选择器
    app: nginx          # 指的是pod资源名称,要把哪个资源发布出去

# 创建service服务
# kubectl create -f nginx-service.yaml
# kubectl get svc

Kube-Proxy

查看kube-proxy当前运行配置

# 查看kube-proxy
kubectl get configmaps kube-proxy -n kube-system -o yaml
kubectl get cm kube-proxy -n kube-system -o yaml

模板

我们常常会因为层级格式的错误导致创建不成功,如少个空格,或者多个空格,不过 yaml文件格式和json文件格式是可以通过kubectl命令导出模板,我们就可通过模板进行修改

(1)根据创建命令导出模板

# 自测命令的正确性,并不执行创建
kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run

# 查看生成json格式,并不执行创建
kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o json

# 查看生成yaml格式,并不执行创建
kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o yaml

# 查看生成yaml格式,并不执行创建, 并保存到my-deployment.yaml文件
kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o yaml > my-deployment.yaml

(2)可根据现有的pod资源生成模板导出yaml或者json文件

# 将现有的资源生成模板导出
kubectl get deploy/nginx-deployment --export -o yaml

# 将现有的资源生成模板导出,并保存到文件中
kubectl get deploy/nginx-deployment --export -o yaml > my-deploy.yaml
上一篇
下一篇