Kubernetes 常用命令

Posted by 彭楷淳 on 2021-03-01
Estimated Reading Time 3 Minutes
Words 634 In Total
Viewed Times

Kubectl 与 Docker 命令


概述

Docker 命令和 Kubectl 命令有很多相似的地方,Docker 操作容器,Kubectl 操作 Pod(容器的集合)等

运行容器

Docker

1
$ docker run -d --restart=always -e DOMAIN=cluster --name nginx-app -p 80:80 nginx

Kubectl

1
2
$ kubectl run --image=nginx nginx-app --port=80 --env="DOMAIN=cluster"
$ kubectl expose deployment nginx-app --port=80 --name=nginx-http

注意: kubectl run 会创建一个 Deployment 并且默认会在后台运行,以上面的代码为例它的名称为 nginx-app。默认情况 Deployment 并不会将端口暴露出去,所以我们还需要使用 kubectl expose 暴露端口以供访问,此时还会创建一个同名的 Service

查看已运行的容器

Docker

1
$ docker ps

Kubectl

1
2
3
$ kubectl get pods
$ kubectl get deployment
$ kubectl get service

交互式进入容器

Docker

1
$ docker exec -it 容器 ID/NAME /bin/bash

Kubectl

1
$ kubectl exec -it 容器名 -- /bin/bash

打印日志

Docker

1
$ docker logs -f 容器 ID/NAME

Kubectl

1
$ kubectl logs -f 容器名

停止和删除容器

Docker

1
2
$ docker stop 容器 ID/NAME
$ docker rm 容器 ID/NAME

Kubectl

1
$ kubectl delete deployment Deployment 名称
1
$ kubectl delete service Service 名称

注意: 不要直接删除 Pod,使用 kubectl 请删除拥有该 Pod 的 Deployment。如果直接删除 Pod,则 Deployment 将会重新创建该 Pod。

查看版本

Docker

1
$ docker version

Kubectl

1
$ kubectl version

查看环境信息

Docker

1
$ docker info

Kubectl

1
$ kubectl cluster-info

Kubectl 常用命令


小提示: 所有命令前都可以加上 watch 命令来观察状态的实时变化,如:watch kubectl get pods --all-namespaces

查看组件状态

1
$ kubectl get cs

查看环境信息

1
$ kubectl cluster-info

查看 Node

1
$ kubectl get nodes -o wide

查看集群配置

1
$ kubectl -n kube-system get cm kubeadm-config -oyaml

运行容器

1
$ kubectl run nginx --image=nginx --replicas=2 --port=80

暴露服务

1
$ kubectl expose deployment nginx --port=80 --type=LoadBalancer

查看命名空间

1
$ kubectl get namespace

创建命名空间

1
2
3
4
apiVersion: v1
kind: Namespace
metadata:
name: development

查看容器

1
2
$ kubectl get pods -o wide
$ kubectl get deployment -o wide

查看服务

1
$ kubectl get service -o wide

查看详情

1
2
3
$ kubectl describe pod <Pod Name>
$ kubectl describe deployment <Deployment Name>
$ kubectl describe service <Service Name>

查看日志

1
$ kubectl logs -f <Pod Name>

删除容器和服务

1
2
$ kubectl delete deployment <Deployment Name>
$ kubectl delete service <Service Name>

配置方式运行

1
$ kubectl create -f <YAML>

配置方式删除

1
$ kubectl delete -f <YAML>

查看配置

1
2
$ kubeadm config view
$ kubectl config view

查看 Ingress

1
$ kubectl get ingress

查看持久卷

1
$ kubectl get pv

查看持久卷消费者

1
$ kubectl get pvc

查看 ConfigMap

1
$ kubectl get cm <ConfigMap Name>

修改 ConfigMap

1
$ kubectl edit cm <ConfigMap Name>

If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !