K8s常用命令

K8s常用命令

安装查看所需镜像列表
kubeadm config images list

加入节点
kubeadm token create --print-join-command
kubeadm init --kubernetes-version v1.18.2 --pod-network-cidr=172.16.0.0/16 --service-cidr=172.17.0.0/16 --node-name=xxx

kubectl cordon node1 禁止节点调度
kubeclt uncordon node1 允许节点调度

kubectl taint node [node] key=value[effect]
NoSchedule: 一定不能被调度
PreferNoSchedule: 尽量不要调度
NoExecute: 不仅不会调度, 还会驱逐Node上已有的Pod
示例:
kubectl taint node k8s-master node-role.kubernetes.io/master- 允许master调度
kubectl taint nodes master node-role.kubernetes.io/master=:NoSchedule 禁止master调度
kubectl describe node master |grep Taints查看污点
3、设置容忍master污点
在 pod 的 spec 中设置 tolerations 字段
tolerations:
key: “node-role.kubernetes.io/master”
operator: “Equal”
value: “”
effect: “NoSchedule”
k8s强制删除Terminating状态的资源
kubectl delete pod [pod name] --force --grace-period=0 -n [namespace] pod
kubectl patch pv pv001 -p ‘{“metadata”:{“finalizers”:null}}‘ pv
kubectl patch pvc my-pvc -p ‘{“metadata”:{“finalizers”: []}}‘ --type=merge pvc
运行状态查看
nodeport 占用
kubectl get service -n kxyyq4 |grep NodePort
cpu占用
kubectl top pod -n kxyyq4
列出的cpu,比如700m就是7个完整的CPU。找到对应的rs调整他的cpu就好了。

命名空间设置资源限额
kubectl describe namespace kxyyq4

kubectl logs -p 上次重启原因

master 参与调度
kubectl taint nodes node1 node-role.kubernetes.io/master:NoSchedule-
master 禁止调度
kubectl taint nodes node1

#添加 尽量不调度 PreferNoSchedule
kubectl taint nodes k8s-master02 node-role.kubernetes.io/master:PreferNoSchedule
#去除污点NoSchedule,最后一个"-"代表删除
kubectl taint nodes k8s-master02 node-role.kubernetes.io/master:NoSchedule-

1, 不可调度

kubectl cordon k8s-node-1
kubectl uncordon k8s-node-1 #取消

驱逐已经运行的业务容器

kubectl drain --ignore-daemonsets --delete-local-data k8s-node-1

rpm 强制更新安装 rpm -ivh --replacefiles --force --nodeps *.rpm

清理网桥
ip link del cni0
ip link del flannel.1

防火墙
iptables -A INPUT -p tcp -m tcp --dport 2379 -j DROP
iptables -A INPUT -p tcp -m tcp --dport 2380 -j DROP

kubectl get clusterrolebinding

k8s 卸载重装
systemctl stop kubelet
systemctl stop docker
rm -rf /var/lib/cni/*
rm -rf /var/lib/kubelet/*
rm -rf /etc/cni/*
ifconfig cni0 down
ifconfig flannel.1 down
ifconfig docker0 down
ip link delete cni0
ip link delete flannel.1
systemctl start docker

修改默认namesapce
vim .kube/config

  • context:
    cluster: kubernetes
    namespace: your-namepsace
    user: kubernetes-admin
    name: kubernetes-admin@kubernetes
    current-context: kubernetes-admin@kubernetes

2、把普通用户加入到docker组中
这里的普通用户是huali,组docker在安装docker的时候,就已经添加了,所以只需要执行两个操作即可:
sudo gpasswd -a $USER docker
newgrp docker

<think>嗯,用户想了解Kubernetes(k8s)的常用命令,我需要整理一个清晰的结构来帮助他。首先,我应该回忆一下k8s的基础命令,比如集群管理、资源查看这些部分。然后考虑用户可能的场景,比如他可能是一个刚入门的管理员或者开发者,需要部署应用、调试问题,所以命令需要覆盖这些方面。 接下来,我需要分门别类地组织这些命令。通常,k8s的命令可以分为集群管理、资源操作、调试与日志、配置管理、扩展与自动伸缩、网络相关、存储管理这几个大类。每个类别下再列出常用命令和示例。 要注意用户提到的格式要求,行内数学表达式用$...$,但这里可能不太涉及数学公式,不过要确保所有的代码或命令行参数正确,比如用反引号包裹。同时,中文回答,结构清晰,分步骤说明。 可能还需要提醒用户注意权限问题,比如有些命令需要特定权限,或者不同命名空间的影响。此外,补充一些常用技巧,比如别名设置,这样能提升用户的使用效率。 另外,用户可能不仅需要命令列表,还需要一些解释,比如每个命令的作用和参数的意义。例如,kubectl get pods 是查看Pod,而-n指定命名空间。这样用户更容易理解何时使用这些命令。 最后,检查是否有遗漏的常用命令,比如滚动更新、回滚、端口转发这些操作,都是日常管理中会用到的。确保覆盖全面,同时不过于冗长,保持简洁明了。</think>以下为Kubernetes(k8s常用命令的整理,按照功能分类说明: --- ### 一、集群管理 1. **查看集群信息** ```bash kubectl cluster-info ``` 2. **查看节点状态** ```bash kubectl get nodes ``` 3. **查看集群版本** ```bash kubectl version ``` --- ### 二、资源操作 1. **查看资源** ```bash kubectl get <资源类型> # 例如:kubectl get pods kubectl get pods -n <命名空间> # 指定命名空间 kubectl get deployments --all-namespaces # 查看所有命名空间的Deployment ``` 2. **描述资源详情** ```bash kubectl describe <资源类型>/<名称> # 例如:kubectl describe pod/nginx ``` 3. **创建/更新资源** ```bash kubectl apply -f <yaml文件> # 通过YAML文件创建或更新资源 ``` 4. **删除资源** ```bash kubectl delete <资源类型>/<名称> # 例如:kubectl delete deployment/nginx kubectl delete -f <yaml文件> # 通过YAML文件删除资源 ``` --- ### 三、调试与日志 1. **查看Pod日志** ```bash kubectl logs <pod名称> -n <命名空间> kubectl logs -f <pod名称> # 实时跟踪日志 ``` 2. **进入Pod执行命令** ```bash kubectl exec -it <pod名称> -- /bin/sh # 进入Pod的Shell环境 ``` 3. **端口转发** ```bash kubectl port-forward <pod名称> <本地端口>:<Pod端口> # 例如:kubectl port-forward nginx 8080:80 ``` --- ### 四、配置管理 1. **查看当前配置** ```bash kubectl config view ``` 2. **切换上下文(集群/用户)** ```bash kubectl config use-context <上下文名称> ``` --- ### 五、扩展与自动伸缩 1. **手动扩展Deployment副本数** ```bash kubectl scale deployment/<名称> --replicas=3 ``` 2. **自动扩缩容(HPA)** ```bash kubectl autoscale deployment/<名称> --min=2 --max=5 --cpu-percent=80 ``` --- ### 六、网络相关 1. **查看Service** ```bash kubectl get services ``` 2. **暴露Service** ```bash kubectl expose deployment/<名称> --type=NodePort --port=80 ``` --- ### 七、存储管理 1. **查看PersistentVolume(PV)** ```bash kubectl get pv ``` 2. **查看PersistentVolumeClaim(PVC)** ```bash kubectl get pvc ``` --- ### 常用技巧 1. **别名简化命令** ```bash alias k="kubectl" # 后续可用 k get pods 代替 kubectl get pods ``` 2. **查看资源简写** ```bash kubectl api-resources # 列出所有资源的缩写(如po=pods, svc=services) ``` 3. **格式化输出** ```bash kubectl get pods -o wide # 显示详细信息 kubectl get pods -o json # JSON格式输出 kubectl get pods -o yaml # YAML格式输出 ``` --- ### 注意事项 1. **命名空间**:默认操作`default`命名空间,使用`-n`指定其他命名空间 2. **权限问题**:部分命令需要`ClusterRole`权限 3. **上下文切换**:多集群环境下需注意当前操作的集群 建议通过`kubectl --help`查看子命令帮助文档,例如`kubectl get --help`。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值