k8s常用命令
admin
2023-02-26 12:41:44
0

相关服务及用途

节点名称 服务名称 用途
管理节点 kubctl-apiserver 提供HTTP Rest统一接口服务,处理和验证REST请求和更新etcd中API对象的状态
管理节点 kubectl-controller-manager 资源控制管理同步
管理节点 kube-scheduler 负责资源调度(调度Pod)
工作节点 kubelet 管理Pod的生命周期,创建、启停等任务
工作节点 kube-proxy 负责网络通信及负载均衡

### 1.重启服务

kubectl patch deployment app名称 -p {\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"date +'%s'\"}}}}} -n kube-system


### 2.重新分配pod数量

kubectl scale deployment kubernetes-dashboard --replicas=1 -n kube-system

### 3.查看部署应用

kubectl get deploy -n kube-system


### 4.获得容器前一次运行的日志内容

kubectl logs --previous
kubectl logs --previous l7-lb-controller-74c67fb85d-5b5cg -n kube-system


### 5.查看描述

kubectl describe svc kubernetes-dashboard -n kube-system
kubectl describe pod kubernetes-dashboard -n kube-system


### 6.查看pod部署节点及IP

kubectl get pods -n kube-system -o wide


### 7.查看集群中服务

kubectl get services --all-namespaces
kubectl get svc kubernetes-dashboard -n kube-system


### 8.查看暴露端口

kubectl get endpoints -n kube-system kubernetes-dashboard
kubectl get ep -n kube-system kubernetes-dashboard


## 9.标签管理

添加标签

kubectl label node 192.168.61.66 nodetype=node --overwrite
lsmod | grep ip_vs

查看标签

kubectl get node --show-labels -n kube-system
kubectl get pods --show-labels kube-sytem
kubectl get pod --show-labels kubernetes-dashboard-6845889d64-25f9x -n kube-system


### 10.查看svc/pod描述

kubectl describe 类型 资源名称 命名空间
kubectl describe svc kubernetes-dashboard -n kube-system
kubectl describe pod kubernetes-dashboard -n kube-system

### 11.查询日志

检查某种Pod的日志(标准输出)

kubectl logs -f pod名称 -n kube-system

在容器内执行命令

kubectl exec -ti pod名称 /bin/bash -n kube-system


### 12.以yaml/json方式显示pod信息

kubectl get deployment -o yaml kubernetes-dashboard -n kube-system
kubectl get daemonset -o yaml -n kube-system calico-node
kubectl get svc -o json pod名称 -n kube-system


### 13.显示所有的服务

kubectl get deployments -n kube-system
kubectl get daemonsets -n kube-system


### 14.创建命名空间

通过命令创建

kubectl create namespace new-namespace

通过文件创建

cat > my-namespace.yaml << EOF
apiVersion: v1
kind: Namespace
metadata:
name: new-namespace
EOF
kubectl create -f ./my-namespace.yaml

删除命令空间

kubectl delete namespaces new-namespace

删除一个namespace会自动删除所有属于该namespace的资源。

default 和 kube-system 命名空间不可删除。


### 15.创建/查看 Deployment 记录版本号

kubectl create -f nginx-deployment.yaml --record


### 16.实现水平扩展或收缩

kubectl scale deployment kubernetes-dashboard --replicas=2 -n kube-system

重新分配pod数量

kubectl scale deployment kubernetes-dashboard --replicas=1 -n kube-system


### 17.版本回退

查看回退状态

kubectl rollout status deployment/kubernetes-dashboard -n kube-system

查看升级历史记录

kubectl rollout history deployment/kubernetes-dashboard -n kube-system

查看单个revision的详细信息

kubectl rollout history deployment/kubernetes-dashboard --revision=1 -n kube-system

回滚到上一个版本

kubectl rollout undo deployment/kubernetes-dashboard -n kube-system

指定回滚某个历史版本

kubectl rollout undo deployment/kubernetes-dashboard --to-revision=1 -n kube-system


### 18.自动扩展

集群支持 horizontal pod autoscaling,可以为Deployment设置自动扩展

kubectl autoscale deployment kubernetes-dashboard --min=1 --max=5 --cpu-percent=80 -n kube-system

查看hap状态

kubectl get hpa kubernetes-dashboard -n kube-system

查看hpa详细状态

kubectl describe hpa kubernetes-dashboard -n kube-system

删除hpa

kubectl delete hpa kubernetes-dashboard -n kube-system


### 19.更新Deployment镜像

kubectl set image deployment kubernetes-dashboard nginx=nginx:1.9.1

### 20.编辑 Deployment pod配置

kubectl edit deployment kubernetes-dashboard -n kube-system


### 21.升级资源

暂停状态下执行

kubectl rollout pause deployment kubernetes-dashboard -n kube-system
kubectl set image deploy kubernetes-dashboard nginx=nginx:1.9.1

更新升级资源

kubectl set resources deployment kubernetes-dashboard -c=kubernetes-dashboard --limits=cpu=200m,memory=512Mi -n kube-system

恢复

kubectl rollout resume deploy kubernetes-dashboard -n kube-system


### 22.查看CIDR划分
kubectl get nodes -o json | jq '.items[] | .spec'

## 23.授权管理

查看授权node节点

kubectl get certificatesigningrequests
kubectl get csr

添加新工作节点

kubectl get csr|grep 'Pending' | awk 'NR>0{print $1}'| xargs kubectl certificate approve

批量授权认证

for i in kubectl get csr|grep -v NAME|awk '{print $1}';do kubectl certificate approve $i;done
kubectl get nodes

拒绝授权

kubectl certificate deny node-csr-AzAMd7KYm57dUkiD-aM3POpS_N37bXCyHeI_B-llyQM

批量拒绝授权

for i in kubectl get csr|grep -v NAME|awk '{print $1}';do kubectl certificate deny $i;done

删除信任csr节点

kubectl delete csr node-csr-AzAMd7KYm57dUkiD-aM3POpS_N37bXCyHeI_B-llyQM

批量删除授权

for i in kubectl get csr|grep -v NAME|awk '{print $1}';do kubectl delete csr $i;done


### 24.集群信息查看

下载 kubeadm

curl -sSL https://dl.k8s.io/release/v1.11.2/bin/linux/amd64/kubeadm > /usr/bin/kubeadm

查看集群访问连接

kubectl cluster-info

查看权限

kubectl describe clusterrole cluster-admin -n kube-system

查看kubectl版本

kubectl version

查看支持api版本

kubectl api-version

查看当前kubectl配置

kubectl config view

查看集群状态

kubectl get componentstatuses
kubectl get rs

查看集群节点

kubectl get nodes

查看命名空间

kubectl get namespaces

Node状态维护

每个Node都包括以下状态信息
地址:包括hostname、外网IP和内网IP
条件(Condition):包括OutOfDisk、Ready、MemoryPressure和DiskPressure
容量(Capacity):Node上的可用资源,包括CPU、内存和Pod总数
基本信息(Info):包括内核版本、容器引擎版本、OS类型等

维护状态/取消维护模式

kubectl cordon NodeName
kubectl uncordon NodeName

相关内容

热门资讯

固态电池技术对汽车产业的影响有... 当前新能源汽车市场正处于快速变革期,消费者对于续航里程和安全性的要求日益严苛。传统液态锂离子电池在能...
台风“红霞”即将登陆,广东多地... 今年第12号台风“红霞”已于今天(25日)早晨由强热带风暴级加强为台风级。预计,该台风将于今天夜间至...
日本皇室恐上演养子夺嫡,麻生太... 澎湃新闻记者 陈沁涵日本政府7月24日正式公布修订后的《皇室典范》,核心在于确保足够的皇族人数。这是...
菲尔兹奖美国得主走红:会说中文... 当地时间7月23日,在美国费城举行的2026年国际数学家大会开幕式上,中国籍数学家王虹、邓煜获得菲尔...
中纪委连打三“虎” 今天(25日),中央纪委国家监委网站连发三份通报。肖杰被开除党籍经中共中央批准,中央纪委国家监委对海...
扎根硬核场景,璇玑动力以全栈自... 2026 世界人工智能大会落地三地四馆,具身智能成为全场核心主线,超 200 家企业同台竞技。展区内...
靠谱大容量TF卡推荐:三星T7... 三星原厂 · 全能微存储新基准 当平板扩容需求激增、Switch游戏掌机需加载多款3A游戏、航拍无人...
买不起大疆、影石的年轻人,排队... 文 | 表外表里 ,作者 | 陈梓洁,编辑 | 杨静、曹宾玲 “一台机器,旺季月入1500。” 去...
美国众议员当街打掉拍摄人员的手... 近日,美国KCCI电视台爆出的一段视频显示,美国众议员扎克·纳恩在街道上与跟踪拍摄人员发生口角,并动...
今天上凯道人数成关键!媒体人示... 海峡导报综合报道 台湾中联油脂致癌油风暴继续延烧,国民党今天(25日)在凯道举办“我是人、我反毒台”...