容器相关
非root用户Docker与K8S
Containerd安装
Containerd常用命令
Docker
镜像创建
国内镜像仓库
容器创建(Dockerfile)
容器系统
docker配置
docker数据管理
docker网络管理
docker容器自启动
docker镜像加速
docker问题
搭建Portainer可视化界面
Docker Swarm
Swarm搭建Docker集群
Docker Compose
Docker Compose命令
Docker Compose模板
Docker Machine
Kubernetes常用命令
k8s部署(kubeadmin)
k8s高可用部署
MiniKube
k8s1.24部署(containerd)
k8s1.24部署(docker)
部署 Dashboard
Kuboard K8S管理台
k8s权限管理
k8s网络插件
私有仓密码镜像拉取
k8s集群管理
POD--基本单位
Pod模板
Pod生命周期
Pod健康检查
初始化容器(initContainer)
Deployment--Pod的管理
Deployment模板
Deployment升级与回滚
DaemonSet控制器
StatefulSet控制器(有状态)
JOB与CRONJOB
Service--发布服务
ingress-traefix
ingress-nginx
MetalLB
存储与配置
持久存储卷
配置存储卷
资源管理
标签、选择器与注解
资源预留
调度管理
自动扩容
Proxy API与API Server
Helm--K8S的包管理器
helm常用命令
自定义Chart
私有chart仓库
helm dashboard
K8S证书过期
K8S问题解决
Harbor安装
Harbor操作
Harbor问题
Harbor升级
Docker Registry安装
Docker Registry鉴权
Registry用Nginx代理SSL及鉴权
Docker Registry问题
Istio 服务网络
常用示例
Gateway【服务网关】
kiali 可视化页面
开启HTTPS
linkerd 服务网络
本文档使用MrDoc发布
返回首页
-
+
Kubernetes常用命令
2020年2月21日 09:55
admin
##Kubernetes(K8S)中文文档 http://docs.kubernetes.org.cn/537.html https://www.bookstack.cn/read/kubernetes-1.17-reference/b187aec9c6654cf4.md#tab-kubeconfig-3 --- kubectl annotate – 更新资源的注解。 kubectl api-versions – 以“组/版本”的格式输出服务端支持的API版本。 kubectl apply – 通过文件名或控制台输入,对资源进行配置。 kubectl attach – 连接到一个正在运行的容器。 kubectl autoscale – 对replication controller进行自动伸缩。 kubectl cluster-info – 输出集群信息。 kubectl config – 修改kubeconfig配置文件。 kubectl create – 通过文件名或控制台输入,创建资源。 kubectl delete – 通过文件名、控制台输入、资源名或者label selector删除资源。 kubectl describe – 输出指定的一个/多个资源的详细信息。 kubectl edit – 编辑服务端的资源。 kubectl exec – 在容器内部执行命令。 kubectl expose – 输入replication controller,service或者pod,并将其暴露为新的kubernetes service。 kubectl get – 输出一个/多个资源。 kubectl label – 更新资源的label。 kubectl logs – 输出pod中一个容器的日志。 kubectl namespace -(已停用)设置或查看当前使用的namespace。 kubectl patch – 通过控制台输入更新资源中的字段。 kubectl port-forward – 将本地端口转发到Pod。 kubectl proxy – 为Kubernetes API server启动代理服务器。 kubectl replace – 通过文件名或控制台输入替换资源。 kubectl rolling-update – 对指定的replication controller执行滚动升级。 kubectl run – 在集群中使用指定镜像启动容器。 kubectl scale – 为replication controller设置新的副本数。 kubectl stop – (已停用)通过资源名或控制台输入安全删除资源。 kubectl version – 输出服务端和客户端的版本信息。 ##K8S服务器免密登陆脚本 node_ips=$(kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="InternalIP")].address}') test -f /root/.ssh/id_rsa || ssh-keygen -N '' -t rsa -f /root/.ssh/id_rsa # 如果不存在rsa key则创建一个。 # 开始给发现的ip添加ssh key,期间需要你输入各节点的密码。 for ip in $node_ips; do ssh-copy-id "$ip" || { echo "failed on $ip."; break; } # 如果执行失败,则退出 done ##查看日志 journalctl -f -u kubelet ##创建资源对象 根据yaml配置文件一次创建service和rc: kubectl create -f my-service.yaml -f my-rc.yaml 根据<directory>目录下所有.yaml、.yml、.json文件的定义进行创建操作; kubectl create -f <directory> ##查看资源对象 kubectl get all #查看所有资源 kubectl get nodes #查看所有nodes kubectl get pods -n <namespace> -o wide #查看指定pod kubectl get pods -A -o wide #查看所有pods kubectl get deployment -A -o wide #查看所有deployment kubectl get service -A #查看所有service kubectl get namespaces -A #查看所有命名空间 kubectl get pv -A #查看所有pv kubectl get pvs -A #查看所有pvs kubectl get storageclass -A #查看所有storageclass kubectl get configmap -A #查看所有configmap kubectl get secret -A #查看所有secret ##描述资源对象 kubectl describe nodes <node-name> kubectl describe pods -n <namespace> kubectl describe <pod-name> ##删除资源对象 kubectl delete -f <filename> kubectl delete pods <pod-name> kubectl delete pods --all(生产环境慎用) kubectl delete node <node-name> kubectl delete deployment <deployment-name> kubectl delete service <service-name> #delete是一个比较粗暴的命令,它会将被删node上的pod直接驱逐,由其 他node创建(针对replicaset),然后将被删节点从master管理范围内移除,master对其失去管理控制,若想使node重归麾下,必须在node节点重启kubelet ##创建服务 kubectl expose deployment nginx --port=80 --type=NodePort ##执行容器的命令 kubectl exec <pod-name> date(默认使用第一个容器执行Pod的date命令) kubectl exec <pod-name> -c <container-name> date(指定Pod中的某个容器执行date命令) kubectl exec -it <pod-name> -c <container-name> /bin/bash (相当与docker exec -it <container-name> /bin/bash) --- ##复制Pod文件 ####1)将“/tmp/foo_dir”本地目录拷贝到默认命名空间的远端pod的“/tmp/bar_dir”目录下 kubectl cp /tmp/foo_dir <some-pod>:/tmp/bar_dir ####2)复制/tmp/foo本地文件到/tmp/bar在远程pod在一个特定的容器 kubectl cp /tmp/foo <some-pod>:/tmp/bar -c <specific-container> ####3)将/tmp/foo文件拷贝到远程pod中的/tmp/bar目录下 kubectl cp /tmp/foo <some-namespace>/<some-pod>:/tmp/bar ####4)从远程pod拷贝/tmp/foo到本地/tmp/bar kubectl cp <some-namespace>/<some-pod>:/tmp/foo /tmp/bar ####5)复制文件到pod的指定目录,也可从容器中复制文件到外部 kubectl cp fileName podName:/fileName --- ##查看容器的日志 kubectl logs <pod-name> kubectl logs -f <pod-name> -c <container-name> (相当于tail -f 命令) --- ##查看k8s事件 #按事件发生时间排序 kubectl get events -A --sort-by='{.metadata.creationTimestamp}' #查看所有事件 kubectl get events -A --- ##查看node情况 kubectl get node --show-labels #如下图所示,证明没有开启调度 ![](/media//202106/2021-06-15142045102681.png) ##开启master调度 #开启 kubectl taint nodes personal01 node-role.kubernetes.io/master:NoSchedule- #关闭 kubectl taint nodes personal01 node-role.kubernetes.io/master=:NoSchedule --- ##节点不可调度 kubectl cordon xxx-node-01 ##解除节点不可调度 kubectl uncordon xxx-node-01
分享到: