Skip to content

文档,

https://kubernetes.io/zh-cn/docs/reference/kubectl/

https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#get

1.创建

create apply的区别

create 创建相同的名字的,会创建失败,但apply不会,这个会重新创建

1.1create

shell
语法,kubectl create -f FILENAME
语法,kubectl create -f FILENAME

deployment

shell
语法,kubectl create deployment NAME --image=image -- [COMMAND] [args...]


例子,
kubectl create deployment my-dep --image=nginx --replicas=3

#指定namespace
kubectl create deployment my-dep --image=nginx --replicas=3 -n namespace_name

#生成yaml 文件
kubectl create deployment my-dep --image=nginx --replicas=3 --dry-run -oyaml
语法,kubectl create deployment NAME --image=image -- [COMMAND] [args...]


例子,
kubectl create deployment my-dep --image=nginx --replicas=3

#指定namespace
kubectl create deployment my-dep --image=nginx --replicas=3 -n namespace_name

#生成yaml 文件
kubectl create deployment my-dep --image=nginx --replicas=3 --dry-run -oyaml

1.2apply

shell
语法,kubectl apply (-f FILENAME | -k DIRECTORY)
语法,kubectl apply (-f FILENAME | -k DIRECTORY)

2.删除

2.1 delete

shell
#创建
kubectl create deployment my-dep --image=nginx --replicas=3

#查看
kubectl get pod

#删除,或者delete -f xx.yaml
kubectl delete deployment my-dep
#创建
kubectl create deployment my-dep --image=nginx --replicas=3

#查看
kubectl get pod

#删除,或者delete -f xx.yaml
kubectl delete deployment my-dep

3.查看

3.1describe

shell
# 显示名为 <pod-name> 的 Pod 的详细信息。
kubectl describe nodes <node-name>
或者
kubectl describe nodes/<node-name>

# 显示名为 <pod-name> 的 Pod 的详细信息。
kubectl describe pods/<pod-name>

# 显示由名为 <rc-name> 的副本控制器管理的所有 Pod 的详细信息。
# 记住:副本控制器创建的任何 Pod 都以副本控制器的名称为前缀。
kubectl describe pods <rc-name>

# 描述所有的 Pod
kubectl describe pods
# 显示名为 <pod-name> 的 Pod 的详细信息。
kubectl describe nodes <node-name>
或者
kubectl describe nodes/<node-name>

# 显示名为 <pod-name> 的 Pod 的详细信息。
kubectl describe pods/<pod-name>

# 显示由名为 <rc-name> 的副本控制器管理的所有 Pod 的详细信息。
# 记住:副本控制器创建的任何 Pod 都以副本控制器的名称为前缀。
kubectl describe pods <rc-name>

# 描述所有的 Pod
kubectl describe pods

3.2get

svc

shell

[root@kube-master ~]# kubectl get svc|service
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP   192.168.0.1      <none>        443/TCP          25h
nginx        NodePort    192.168.253.94   <none>        8080:32498/TCP   172m

#查看所有 -A
kubectl get svc -A

[root@kube-master ~]# kubectl get svc|service
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP   192.168.0.1      <none>        443/TCP          25h
nginx        NodePort    192.168.253.94   <none>        8080:32498/TCP   172m

#查看所有 -A
kubectl get svc -A

componentstatuses

shell
[root@kube-master yaml]# kubectl get componentstatuses
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME                 STATUS    MESSAGE                         ERROR
etcd-0               Healthy   {"health":"true","reason":""}
scheduler            Healthy   ok
controller-manager   Healthy   ok

#- --port=0 注释(kubeadmin)
[root@kube-master yaml]# kubectl get componentstatuses
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME                 STATUS    MESSAGE                         ERROR
etcd-0               Healthy   {"health":"true","reason":""}
scheduler            Healthy   ok
controller-manager   Healthy   ok

#- --port=0 注释(kubeadmin)

3.3logs

kubectl logs -f <pod-name>
kubectl logs -f <pod-name>

4.操作Pod

shell
# 从 Pod <pod-name> 中获取运行 'date' 的输出。默认情况下,输出来自第一个容器。
kubectl exec <pod-name> -- date

# 运行输出 'date' 获取在 Pod <pod-name> 中容器 <container-name> 的输出。
kubectl exec <pod-name> -c <container-name> -- date

# 获取一个交互 TTY 并在 Pod  <pod-name> 中运行 /bin/bash。默认情况下,输出来自第一个容器。
kubectl exec -ti <pod-name> -- /bin/bash
# 从 Pod <pod-name> 中获取运行 'date' 的输出。默认情况下,输出来自第一个容器。
kubectl exec <pod-name> -- date

# 运行输出 'date' 获取在 Pod <pod-name> 中容器 <container-name> 的输出。
kubectl exec <pod-name> -c <container-name> -- date

# 获取一个交互 TTY 并在 Pod  <pod-name> 中运行 /bin/bash。默认情况下,输出来自第一个容器。
kubectl exec -ti <pod-name> -- /bin/bash