k8s小手抄

labels:
根据region=gpu查询所属node
1、kubectl get node -l region=gpu -o wide
kubectl get node -l 'region=underlay, cicd=true' -o wide
查看有哪些labels为region=gpu的node
2、kubectl get node --show-labels |grep 'region=gpu'

查看node状态,信息
kubectl describe node nodename


1、处理构建缺失镜像:
################################################
镜像打包:
docker tag 本地镜像 dockerHub仓库地址:tagName
上传镜像:
docker push dockerHub仓库地址:tagName
拉取镜像:
docker pull remoteSpaceName/test00:hello_bak
################################################
通过cicd构建地址确定应用,再通过该应用的的【监控】确定hostip(物理机地址),再登录物理机地址查看相关镜像
docker images |grep '****'
docker tag ****.**.lo/online/****:26d59fb0  harborlt3.****.lo/online/****:26d59fb0
docker login harborlt3.****.lo
docker push  harborlt3.****.lo/online/****:26d59fb0

通过yaml文件启动pod
kubectl apply -f xxx.yaml
查看pod的日志
kubectl -n [namespace] logs [podname]
查看configmap
kubectl get configmap  -n cloudcrd -o wide -o yaml
kubectl get pods -n cloudcrd -o wide -o yaml
kubectl get pods -n cloudcrd
kubectl -n cloudcrd logs cloudcrd-0

查询加入节点的命令,在master上执行

kubeadm token create --print-join-command

查看node下哪些pod级运行情况
kubectl get pod -o wide |grep '****-****.host'
kubectl describe nodes ****-****.host

通过grep nodes的主机名查看所有namespace下的pod
kubectl get pod -o wide --all-namespaces |grep '****-****.host'

在node机器上看pod
crictl pods

########configmap########
# 查看ConfigMap列表
kubectl get configmap
# 查看ConfigMap cm-appvars
kubectl describe configmap cm-appvars
# 以yaml的形式输出cm-appvars
kubectl get configmap cm-appvars -o yaml


通过job进行etcd备份
#1、创建namespace
kubectl create ns etcd-backup
#2、创建configmap
kubectl create -f configmap-etcd-backup-scripts.yaml
####less configmap-etcd-backup-scripts.yaml
apiVersion: v1
data:
  etcd_backup.sh: |
    #!/bin/sh
    TARGET_ENDPOINT="$target_endpoint_1"
    etcdctl --endpoints=${TARGET_ENDPOINT} endpoint health
    if [ $? -ne 0 ]
    then
        TARGET_ENDPOINT="$target_endpoint_2"
    fi
    etcdctl --endpoints=${TARGET_ENDPOINT} snapshot save /data/etcd-backup.db
  rename_file.sh: |
    #!/bin/sh
    datestr=$(date "+%Y%m%d%H%M%S")
    mv /tmp_dir/etcd-backup.db /data/${clusterName}_${datestr}.db
    find /data/ -mtime +7 -name "${clusterName}_*.db" | while read LINE
    do
      echo "Deletting file: ${LINE}"
      rm -f ${LINE}
    done
    echo "Done."
kind: ConfigMap
metadata:
  name: etcd-backup-scripts
  namespace: etcd-backup

#3、

Pod 停留在 Terminating 状态

kubectl delete pod [$Pod] -n [$namespace] --grace-period=0 --forcePod 


从左到右的顺序一次为

分钟 小时 日期 月份 周(一周当中的某天) 执行脚本 参数1 参数2


#设置不可调度
kubectl cordon ****-****.host

#对10.169.24.5上的pod进行驱逐
kubectl drain ****-****.host  --ignore-daemonsets --force
##参数说明:
#–delete-local-data: 即使pod使用了emptyDir也删除,数据重要可不加此参数删除数据
#–ignore-daemonsets: 忽略deamonset控制器的pod,如果不忽略,deamonset控制器控制的pod被删除后可能马上又在此节点上启动起来,会成为死循环;
#–force: 不加force参数只会删除该NODE上由ReplicationController, ReplicaSet, DaemonSet,StatefulSet or Job创建的Pod,加了后还会删除’裸奔的pod’(没有绑定到任何replication controller)

#维护完成后,开机后在masert上进行恢复可调度
kubectl uncordon ****-****.host

在网上看到一个很巧妙的方法,可以删除文件的首行、尾行和首尾两行,原理和操作记录如下
利用awk按行遍历,依次执行body的特点, 如下面命令
awk 'NR>1 {print line} {line=$0}'   作用是去掉最后一行。
首轮先输出line(此时为空值,打印空行,所以用 NR>1 跳过此输出),再把首行赋值给line变量,
然后在第二轮输出了line(此时为第一行内容),循环到最后一行时,输出为倒数第二行内容。
最后把最后一行赋值给line,但循环已完,所以最后一行不会输出,即去掉最后一行。
按上面原理
如果想去掉首行,就设置 NR>2
如果想保留最后一行,可以在END输出line即可

原文链接:https://blog.csdn.net/scu_07_bingo/article/details/105860846

删除首行
  awk 'NR>2{print line}{line=$0} END{print line}' a.txt
删除尾行
awk 'NR>1{print line}{line=$0}' a.txt
删除首尾两行
awk 'NR>2{print line}{line=$0}' a.txt

python2:
python -m SimpleHTTPServer 9999
python3:
python -m http.server  9999
查看tar.gz压缩包的文件
tar -tvf  xxx.tar.gz

所有stage环境,除了申请网络策略工单
还需要在10.169.27.1上的/opt/shell/kube-ovn/tool/下的yaml文件中添加【源地址/32】,然后kubectl apply -f xxx.yaml


排除空行和#开头
grep -vE '^#|^$' /etc/gitlab/gitlab.rb
egrep -v '^$|#'  /etc/gitlab/gitlab.rb

查询本机IP:
ip a |grep 'bond0'|grep 'inet'|awk -F ' ' '{print $2}'|awk -F '/' '{print $1}'
cat /etc/sysconfig/network-scripts/ifcfg-bond0 |grep 'IPADDR='|awk -F '=' '{print $2}'

不可调度nodes:
kubectl cordon nodename
取消不可调度nodes
kubectl uncordon nodename
node是否被驱逐查看
kubectl describe node nodename

docker run -it python-algorithm:3.6.2-v1 bash


kubectl get node -o wide --show-labels| awk -F ' ' '{print $1,$6,$14}'|grep 'kubernetes.io/switch-card='

删除node中的某个标签[key+'-']
kubectl label node nodename  kubernetes_io_switch_card-
增加标签
kubectl label node nodename kubernetes.io/switch-card=2


coredns:
kubectl get cm -n kube-system | grep coredns
备份:
kubectl get cm coredns -n kube-system -o yaml > /tmp/coredns20221025.yaml
kubectl get cm corednsdaemon -n kube-system -o yaml > /tmp/corednsdaemon20221025.yaml

编辑:找到****cloud.test:53下添加对应域名(注意格式)
configmap cm

kubectl edit cm coredns -n kube-system
kubectl edit cm corednsdaemon -n kube-system

验证:
kubectl get pod -n kube-system | grep coredns | head -n 10
kubectl logs coredns-6748dbbcc-wdqjv -n kube-system | grep reload

停止pod
kubectl get pod -o wide -n kube-system 
kubectl scale --replicas=0 deployment/[deployment] -n [namespace]
kubectl get deployment -n namespace
kubectl delete deployment coredns -n kube-system
防火墙操作
# 1.查看OUTPUT详情
IPTABLES -L OUTPUT -N  --LINE-NUMBER 

# 2.新增OUTPUT规则,拒绝访问目标端口8051 3260
IPTABLES -A OUTPUT -P TCP --DPORT 8051 -J DROP
IPTABLES -A OUTPUT -P TCP --DPORT 3260 -J DROP


# 3.新增OUTPUT规则,拒绝访问目标端口 11995:11999   3260
IPTABLES -A OUTPUT -P TCP --DPORT 11995:11999 -J DROP
IPTABLES -A OUTPUT -P TCP --DPORT 2049  -J DROP
IPTABLES -A OUTPUT -P TCP --DPORT 111  -J DROP

# 删除OUTPUT规则
IPTABLES -D OUTPUT 序号

stage独立网络策略变更
stage独立网络策略变更
1、登陆主机10.169.27.1 
2、进入/opt/shell/kube-ovn/tool/
3、打开文件ovn-default-1.8.0.yaml 编辑增加IP

查看组件状态
kubectl get cs

查看环境信息
kubectl cluster-info

查看 Node
kubectl get nodes -o wide

查看集群配置
kubectl -n kube-system get cm kubeadm-config -oyaml

运行容器
kubectl run nginx --image=nginx --replicas=2 --port=80

暴露服务
kubectl expose deployment nginx --port=80 --type=LoadBalancer

查看命名空间
kubectl get namespace

创建命名空间
apiVersion: v
kind: Namespace
metadata:
  name: development

查看容器
kubectl get pods -o wide
kubectl get deployment -o wide

查看服务
kubectl get service -o wide

查看详情
kubectl describe pod <Pod Name>
kubectl describe deployment <Deployment Name>
kubectl describe service <Service Name>


查看日志
kubectl logs -f <Pod Name>

删除容器和服务
kubectl delete deployment <Deployment Name>
kubectl delete service <Service Name>

配置方式运行
kubectl create -f <YAML>
kubectl create namesapce nginx deploy  nginx --image=harborxy.****cloud.test/artifact/nginx
配置方式删除
kubectl delete -f <YAML>

查看配置
kubeadm config view
kubectl config view

查看 Ingress
kubectl get ingress

查看持久卷
kubectl get pv

查看持久卷消费者
kubectl get pvc

查看 ConfigMap
kubectl get cm <ConfigMap Name>

修改 ConfigMap
kubectl edit cm <ConfigMap Name>
# 临时
$ swapoff -a 
# 永久关闭
$ sed -ri 's/.*swap.*/#&/' /etc/fstab

根据 yaml 创建资源, apply 可以重复执行,create 不行
kubectl create -f pod.yaml
kubectl apply -f pod.yaml

Master 也当作 Node 使用
kubectl taint node --all node-role.kubernetes.io/master-

将运行在节点xxx上运行的pod平滑的赶到其他节点上
kubectl drain --ignore-daemonsets --delete-emptydir-data --force

ansible 使用方法
ansible xsky -i hosts -m shell -a 'iscsiadm -m session -R' -u ops --become -k -K
ansible cpuinfo -i hosts -m shell -a "cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor" -u ops --become -k -K
ansible cpuinfo -i hosts -m shell -a "ansible cpuinfo -i hosts -m shell -a "cpupower frequency-set -g performance" -u ops --become -k -K" -u ops --become -k -K

ansible xsky -i hosts -m shell -a '/usr/sbin/lspci -nnn | grep -i 9005:028d | wc -l ' -u ops --become -k -K
ansible needre -i hosts -m shell -a 'rpm -qa |grep -E "****-aacraid-4.14.134|kmod-aacraid-RHEL7.4-1.2" ' -u ops --become -k -K  |less

kubectl get pvc -A |grep -v Bound |wc -l   
kubectl get pod -A |grep -v Running

查看calico是否正常运行
calicoctl get ippools -o wide
calicoctl node status

ETCD各节点状态查看
ETCDCTL_API=3 etcdctl endpoint status

进入容器
docker ps |grep 容器
docker inspect 容器号
nsenter -t Pid号 -m -n -u -i
影响需要发起itsm流程的个别业务(自助删除服务流程、跨机房迁移流程)


查看ingress
kubectl get ingress -A |grep 域名
kubectl describe -n namespace 域名 -o yaml 

证书时间查看
kubeadm alpha certs check-expiration


etcdctl --endpoints http://127.0.0.1:2379 make-mirror http://10.99.75.167:2379
etcdctl --endpoints http://127.0.0.1:2379 make-mirror http://10.99.75.165:2379

etcdctl --endpoints http://10.99.75.165:2379 get --prefix /
/test

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值