k8s常用命令 前言: 这是一个用于管理 Kubernetes 集群的 kubectl 命令。让我们解释一下这个命令的各个部分:
kubectl : 这是 Kubernetes 命令行工具,用于与 Kubernetes 集群进行交互,例如创建、管理和监视资源。get : 这是 kubectl 命令的一个子命令,用于检索(获取)Kubernetes 集群中的资源的信息。svc : 这是 “service” 的缩写,表示你希望获取服务(Service)的相关信息。deploy : 这是 “deployment” 的缩写,表示你希望获取部署(Deployment)的相关信息。-n kube-system : 这是一个标志(flag),用于指定要检索资源所在的命名空间(namespace)。在这种情况下,”-n kube-system” 表示你希望获取位于 kube-system 命名空间中的服务的信息。通过yml创建删除应用
1 2 3 kubectl apply -f kuboard-offline.yml kubectl delete -f kuboard-offline.yml kubectl apply -f nginx-deployment.yml
通过命令行创建应用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 kubectl create deployment --help kubectl create deployment demo --image=nginx:1.7.9 --replicas=3 kubectl expose deployment demo --port=80 --target-port=80 kubectl create deployment nginx --image=registry.cn-hangzhou.aliyuncs.com/xiaohh-docker/nginx:latest kubectl expose deployment nginx --port=80 --type =LoadBalancer kubectl delete deployment nginx kubectl create -f nginx-service.yaml kubectl get service/nginx-service kubectl delete deployment demo
暴露外部端口用于访问
1 2 3 kubectl patch svc kubernetes-dashboard -n kubernetes-dashboard \ -p '{"spec":{"type":"NodePort","ports":[{"port":443,"targetPort":8443,"nodePort":30443}]}}'
查看pod详情
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 kubectl get pods -n kube-system kubectl get pods -n kube-system -o wide kubectl describe pod kubernetes-dashboard-7bdfc744fc-hmhh2 -n kube-system kubectl get svc -n kube-system kubectl get svc -n kubernetes-dashboard kubectl get pods -o wide kubectl get deployments.apps kubectl describe pods nginx-deployment-57c68fcd95-sgd25 kubectl describe service demo kubectl get nodes kubectl get cs kubectl get daemonsets.apps -n kube-system
登陆进入pod相当于docker exec
1 2 3 kubectl exec -it volume-rbd-demo /bin/bash kubectl exec -it volume-rbd-demo -- df -h
部分命令完整写法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 $ kubectl get deployment --namespace=kubernetes-dashboard kubernetes-dashboard $ kubectl describe deployment --namespace=kubernetes-dashboard kubernetes-dashboard $ kubectl get service --namespace=kubernetes-dashboard kubernetes-dashboard 返回 NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes-dashboard ClusterIP 10.108.163.102 <none> 443/TCP 5m15s $ kubectl --namespace=kubernetes-dashboard get pod -o wide | grep dashboard 返回 dashboard-metrics-scraper-79459f84f-5g8h6 1/1 Running 0 5m34s 172.16.0.9 ceph1 <none> kubernetes-dashboard-76dc96b85f-nhwjd 1/1 Running 0 5m34s 172.16.0.8 ceph1 <none> kubectl -n kubernetes-dashboard get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dashboard-metrics-scraper ClusterIP 10.104.31.122 <none> 8000/TCP 32m kubernetes-dashboard ClusterIP 10.108.163.102 <none> 443/TCP 32m $ kubectl describe pod --namespace=kubernetes-dashboard
一. 开始 1. 删除pod 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 kubectl get pods -A kubectl get pod kuboard-cc79974cd-7xkpc -n kube-system -o yaml 请注意,强制删除可能会导致容器和相关资源无法正常终止,这可能会影响正在运行的应用程序。如果可能的话,最好先让 Pod 自行终止(通常需要一些时间),然后再尝试删除它。 kubectl delete pod kuboard-cc79974cd-7xkpc -n kube-system kubectl get pods -n kube-system kubectl delete deployment nginx-deployment kubectl get all --selector app=nginx
2. 删除pod的映射端口 1 2 3 4 kubectl get svc kubectl delete svc nginx