一、在bclinux Euler 21.10 安装oracle19c客户端 (为了使用sqlplus 、expdp、impdp、sqlldr等指令)
#环境和说明
系统:BigCloud Enterprise Linux For Euler 21.10 LTS
为了使用sqlplus 、expdp、impdp、sqlldr等指令。 下面是安装步骤 (此方法也适用于centos7.9)
yum install libnsl -y
rpm -ivh oracle-instantclient19.20-basic-19.20.0.0.0-1.x86_64.rpm
rpm -ivh oracle-instantclient19.20-devel-19.20.0.0.0-1.x86_64.rpm
rpm -ivh oracle-instantclient19.20-jdbc-19.20.0.0.0-1.x86_64.rpm
rpm -ivh oracle-instantclient19.20-odbc-19.20.0.0.0-1.x86_64.rpm
rpm -ivh oracle-instantclient19.20-sqlplus-19.20.0.0.0-1.x86_64.rpm
rpm -ivh oracle-instantclient19.20-tools-19.20.0.0.0-1.x86_64.rpm
#配置环境变量
[root@gxyd-iom-app1-6 /home/nwom/oracle]# vim /etc/profile
export PATH=$PATH:/usr/lib/oracle/19.20/client64/bin
source /etc/profile
#参考博客:
http://www.taodudu.cc/news/show-3306490.html?action=onClick
注意事项:无外网/离线环境下,所需的bclinux euler的rpm包。
#4GB的bclinux euler镜像ISO包,作为本地yum源,是没有libnsl的。
#缺libnsl依赖,有的操作是将原本的 xxx.oe1. 换成了 libnsl-2.28-101.el8.x86_64
[root@localhost cache]# cat /etc/yum.conf
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False
#保存yum下载的包
keepcache=1
###
[root@localhost oracle-instanceClient-19c]# rpm -ivh oracle-instantclient19.20-basic-19.20.0.0.0-1.x86_64.rpm
错误:依赖检测失败:
libnsl.so.1()(64bit) 被 oracle-instantclient19.20-basic-19.20.0.0.0-1.x86_64 需要
####安装依赖
[root@localhost oracle-instanceClient-19c]# yum install libnsl
上次元数据过期检查:0:07:18 前,执行于 2024年05月04日 星期六 18时42分56秒。
依赖关系解决。
===========================================================================================================================================================
Package Architecture Version Repository Size
===========================================================================================================================================================
安装:
libnsl x86_64 2.28-99.oe1.bclinux update 42 k
升级:
glibc x86_64 2.28-99.oe1.bclinux update 3.2 M
glibc-common x86_64 2.28-99.oe1.bclinux update 26 M
glibc-devel x86_64 2.28-99.oe1.bclinux update 2.8 M
事务概要
===========================================================================================================================================================
安装 1 软件包
升级 3 软件包
总下载:32 M
确定吗?[y/N]: y
下载软件包:
(1/4): libnsl-2.28-99.oe1.bclinux.x86_64.rpm 107 kB/s | 42 kB 00:00
(2/4): glibc-2.28-99.oe1.bclinux.x86_64.rpm 3.2 MB/s | 3.2 MB 00:00
(3/4): glibc-common-2.28-99.oe1.bclinux.x86_64.rpm 6.4 MB/s | 26 MB 00:04
(4/4): glibc-devel-2.28-99.oe1.bclinux.x86_64.rpm 761 kB/s | 2.8 MB 00:03
已升级:
glibc-2.28-99.oe1.bclinux.x86_64 glibc-common-2.28-99.oe1.bclinux.x86_64 glibc-devel-2.28-99.oe1.bclinux.x86_64
已安装:
libnsl-2.28-99.oe1.bclinux.x86_64
完毕!
###缓存下来的包
[root@localhost cache]# pwd
/var/cache
[root@localhost cache]# find /var/cache -name *.rpm
/var/cache/dnf/update-02ebc2c230a599d6/packages/glibc-devel-2.28-99.oe1.bclinux.x86_64.rpm
/var/cache/dnf/update-02ebc2c230a599d6/packages/glibc-common-2.28-99.oe1.bclinux.x86_64.rpm
/var/cache/dnf/update-02ebc2c230a599d6/packages/libnsl-2.28-99.oe1.bclinux.x86_64.rpm
/var/cache/dnf/update-02ebc2c230a599d6/packages/glibc-2.28-99.oe1.bclinux.x86_64.rpm
#离线下载rpm包地址
https://mirrors.cmecloud.cn/bclinux/oe21.10/update/x86_64/Packages/
https://mirrors.cmecloud.cn/bclinux/oe21.10/update/x86_64/Packages/glibc-devel-2.28-99.oe1.bclinux.x86_64.rpm
https://mirrors.cmecloud.cn/bclinux/oe21.10/update/x86_64/Packages/glibc-common-2.28-99.oe1.bclinux.x86_64.rpm
https://mirrors.cmecloud.cn/bclinux/oe21.10/update/x86_64/Packages/glibc-2.28-99.oe1.bclinux.x86_64.rpm
https://mirrors.cmecloud.cn/bclinux/oe21.10/update/x86_64/Packages/libnsl-2.28-99.oe1.bclinux.x86_64.rpm
二、shell和sftp上传过去1小时文件随记
#文件的示例:
-rw-r----- 1 test test 59M May 10 08:05 NR_xx_20240510073000.tar.gz
-rw-r----- 1 test test 62M May 10 08:20 NR_xx_20240510074500.tar.gz
-rw-r----- 1 test test 65M May 10 08:35 NR_xx_20240510080000.tar.gz
-rw-r----- 1 test test 66M May 10 08:50 NR_xx_20240510081500.tar.gz
-rw-r----- 1 test test 68M May 10 09:05 NR_xx_20240510083000.tar.gz
-rw-r----- 1 test test 68M May 10 09:20 NR_xx_20240510084500.tar.gz
-rw-r----- 1 test test 71M May 10 09:35 NR_xx_20240510090000.tar.gz
-rw-r----- 1 test test 72M May 10 09:50 NR_xx_20240510091500.tar.gz
#推送过去1小时前,所生成的文件到sftp端
#定时任务执行 35 * * * * bash /shellDir/pushFilesXX.sh
#!/bin/bash
if [ $# != 2 ];then
statis_date=`date -d "-1 hour" +%Y%m%d`
statis_date1=`date -d "-1 hour" +%H`
else
statis_date="${1}"
statis_date1="${2}"
fi
statis_date=${statis_date}
#SFTP配置
SFTP_HOSTNAME=10.xx.xx.xx
SFTP_PORT=22
SFTP_USERNAME=xx
SFTP_PASSWORD='xx'
SFTP_DIR=/opt/MRO
csv_dir=/data1/input/10.xx.xx.xx
#推送至SFTP
lftp -u ${SFTP_USERNAME},${SFTP_PASSWORD} sftp://${SFTP_HOSTNAME}:${SFTP_PORT} <<EOF
lcd ${csv_dir}/${statis_date}/bak/
mkdir ${SFTP_DIR}/${statis_date}
cd ${SFTP_DIR}/${statis_date}
mput NR_*_${statis_date}${statis_date1}*.tar.gz
bye
EOF
echo -e " finish $(date +%F_%T)" >> record.txt
#推送全部文件到sftp端
#!/bin/bash
#SFTP配置
SFTP_HOSTNAME=10.xx.xx.xx
SFTP_PORT=22
SFTP_USERNAME=xx
SFTP_PASSWORD='xx'
SFTP_DIR=/opt/MRO
csv_dir=/data1/input/10.xx.xx.x1
#推送至SFTP
lftp -u ${SFTP_USERNAME},${SFTP_PASSWORD} sftp://${SFTP_HOSTNAME}:${SFTP_PORT} <<EOF
lcd ${csv_dir}/20240508/bak/
mkdir ${SFTP_DIR}/20240508
cd ${SFTP_DIR}/20240508
mput *
bye
EOF
三、Linux下 cp/mv大文件杂谈/随记
环境信息: bclinux euler 21.10
20240430.tar.gz ~ 20240560.tar.gz 7个文件,每个文件大小300gb,总大小2.1TB
RAID 10 , 磁盘 /data1到/data10 都是可用6.9TB
不管是cp或mv 都会吃内存 ,主要体现在 buff/cache
#如果/data1-/data10是在10个不同的硬件磁盘上,那么写入目标的速度没影响。但是,会读10次原文件,所以,你应该用tee命令,读一次源文件之后,直接从内存拷贝源文件的内容写入目标文件 #malong
I/O有瓶颈
在/data下 同时开7个cp任务和 文件依次mv 的传输速度 ,他俩的速度都是在 250M/s左右,传完2.1TB的文件大概总耗时142分钟。 (4秒传输1GB)
###分割线####
第二天,此时的情况是:已经从/data 复制数据到 /data1 、 /data2 、/data3 、 /data4下。
从不同挂载盘, 再开cp是能“提速”的(目的是54TB的备份)。 就算内存已被之前的/data 下 7个cp吃满了。
这里做了从"/data1复制文件到/data9" , "/data2复制文件到/data8" , "/data3复制文件到/data7"
四、利用lftp检查多个ftp/sftp服务器的连通性,路径是否存在,密码是否错误
checkFtpPath.sh
# /bin/sh
#Usage: bash checkFtpPath.sh > processv3.txt 2>&1
#protocol、类型、IP、端口、账号、密码、路径
HOST_INFO=/test/hc_test.txt
output_file=/test/ftp_paths_result.txt
allRecord_file=/test/allLftpRecord.txt
IFS=$'\n'
>${output_file}
>${allRecord_file}
for ftpInfo in $(cat $HOST_INFO); do
protocol=$(echo $ftpInfo | awk '{print $1}')
type=$(echo $ftpInfo | awk '{print $2}')
ip=$(echo $ftpInfo | awk '{print $3}')
port=$(echo $ftpInfo | awk '{print $4}')
user=$(echo $ftpInfo | awk '{print $5}')
password=$(echo $ftpInfo | awk '{print $6}')
path=$(echo $ftpInfo | awk '{print $7}')
if [ "$protocol" == "ftp" ]; then
# FTP连接
if timeout 3 lftp -u "$user,$password" "ftp://$ip:$port" -e " set ssl:verify-certificate no ; cd $path; quit" >> ${allRecord_file} 2>&1 ; then
echo "$type $ip $path exists (FTP)" >> "$output_file"
sed -r -i "\$s#^#$ip $protocol $type port:$port #" $allRecord_file
echo "check $ip $type $port , waiting... ok"
else
[ $? -eq 124 ] && echo -e "$ip $protocol $type port:$port connect timeout 3s error!" >>${allRecord_file}
echo "$type $ip $path does not exist or other Problem (FTP)" >> "$output_file"
sed -r -i "\$s#^#$ip $protocol $type port:$port #" $allRecord_file
echo "check $ip $type $port , waiting... ftp fail!"
fi
elif [ "$protocol" == "sftp" ]; then
# SFTP连接
if timeout 3 lftp -u "$user,$password" "sftp://$ip:$port" -e "set sftp:auto-confirm yes; cd $path; quit" >> ${allRecord_file} 2>&1 ; then
echo "$type $ip $path exists (SFTP)" >> "$output_file"
sed -r -i "\$s#^#$ip $protocol $type port:$port #" $allRecord_file
echo "check $ip $type $port , waiting... ok"
else
[ $? -eq 124 ] && echo -e "$ip $protocol $type port:$port connect timeout 3s error!" >>${allRecord_file}
echo "$type $ip $path does not exist or other Problem (SFTP)" >> "$output_file"
sed -r -i "\$s#^#$ip $protocol $type port:$port #" $allRecord_file
echo "check $ip $type $port , waiting... sftp fail"
fi
else
echo "Unsupported protocol: $protocol" >> "$output_file"
fi
done
paste -d '|' processv3.txt $output_file $allRecord_file > checkAllInfo.csv
[ $? -eq 0 ] && sed -i '1s/^/执行过程echo|判断结果|lftp执行过程\n/' checkAllInfo.csv
#sleep 3
#echo "检查结果已保存到 $output_file"
#echo "lftp语句过程结果已保存到 ${allRecord_file}"
测试数据 hc_test.txt
ftp MR 192.168.1.100 21 test 123456 /Nxx/MR/
sftp MR 192.168.1.101 22 test 123456 /testox/NR
碰到的坑:
1、IFS='\n' ,不然他for输出是以空格为分割的。
2、timeout 3 指令,如果里面执行的语句,是那种ping 不通, ftp连接后会无限重连的,此时这种错误的情况,后面是不会有追加日志的。 timeout全部中断整行指令了。 参考:《https://unix.stackexchange.com/questions/304220/how-to-get-the-output-of-timeout-command-without-using-a-shell-script》
3、lftp指令里面的"set net:timeout "没效果, 参考:《https://stackoverflow.com/questions/6327800/lftp-timeout-not-working 》
改成:
#这样就不需要linux带的 timeout指令了
lftp -u 'test,123' ftp://10.xx.x.x:21 -e 'set net:reconnect-interval-base 3; set net:max-retries 1; set ssl:verify-certificate no ; cd /ex/; quit' >> record.txt 2>&1
4、 lftp 出现 Host key verification failed 参考《https://blog.richliu.com/2015/11/30/1882/lftp-%E5%87%BA%E7%8F%BE-host-key-verification-failed/》
4.2 利用lftp查看不同账号,不同路径下是否有相同文件。(检查/验证 任务)
zte27xIp.txt 部分内容
10.xx.27.1 root 12345 /xx/NORTHFILE/MR/MRO jt 123123 /xx/NORTHFILE/MR/
10.xx.27.5 lc 12345 /xx/MR/MRO jt 123123 /xx/NORTHFILE/MR/
检查脚本 find_files_zte.sh
#!/bin/bash
IFS=$'\n'
HOST_INFO=zte27xIp.txt
echo "check zte27xx IP"
for zteip27x in `cat $HOST_INFO`;
do
Ip=$(echo $zteip27x | awk '{print $1}')
lcUser=$(echo $zteip27x | awk '{print $2}')
lcPass=$(echo $zteip27x | awk '{print $3}')
lcPath=$(echo $zteip27x | awk '{print $4}')
Jtuser=$(echo $zteip27x | awk '{print $5}')
Jtpass=$(echo $zteip27x | awk '{print $6}')
Jtpath=$(echo $zteip27x | awk '{print $7}')
echo -e "$Ip + jt + path: $Jtpath"
lftp -u "$Jtuser","$Jtpass" "$Ip" -e "set ssl:verify-certificate no;cd ${Jtpath}/MRO;ls 20240822/TD*164500.tar.gz|tail -n +1| head -n 1;quit"
echo -e "$Ip + $lcUser + path: $lcPath"
lftp -u "$lcUser","$lcPass" "$Ip" -e "set ssl:verify-certificate no;cd $lcPath;ls 20240822/TD*164500.tar.gz|tail -n +1| head -n 1;quit"
done > zte27xx_info.txt
部分运行结果zte27xx_info.txt
10.xx.27.1 + jt + path: /xx/NORTHFILE/MR/
-rw-r--r-- 1 0 0 1767085 Aug 22 17:05 TD-xx_ZTE_OMC1_20240822164500.tar.gz
10.xx.27.1 + root + path: /xx//MR/MRO
-rw-r--r-- 1 0 0 1767085 Aug 22 17:05 TD-xx_ZTE_OMC1_20240822164500.tar.gz
10.xx.27.5 + jt + path: /xx/MR/
-rw-r--r-- 1 0 0 178030830 Aug 22 17:11 TD-xx_ZTE_OMC1_20240822164500.tar.gz
10.xx.27.5 + lc + path: //xx//MR/MRO
-rw-r--r-- 1 0 0 178030830 Aug 22 17:11 TD-xx_ZTE_OMC1_20240822164500.tar.gz
五、 使用shell 复制备份180天的日期文件
需求内容:
使用shell实现下面需求。
目前有盘符/data1 /data2到 /data10 各有可用空间6.9TB。 (本章 第三标题的环境)
在/tmp/下有备份文件20240501.tar.gz ,20240502.tar.gz,20240503.tar.gz,20240504.tar.gz,20240505.tar.gz
这几个备份文件各自大小是300GB。
要求通过cp复制制造出180天前的备份文件,就是要生成180个备份文件,以20240505为界限。(2024年5月5日)
注意要每个盘符仅放21天的文件,否则磁盘就会爆满。每个文件都是不同的,按照不同日期来存放的,要怎么复制才能满足上面需求?
比如
cp /home/20240501.tar.gz /data1/20231111.tar.gz
cp /home/20240502.tar.gz /data1/20231112.tar.gz
cp /home/20240503.tar.gz /data1/20231113.tar.gz
cp /home/20240504.tar.gz /data1/20231114.tar.gz
cp /home/20240505.tar.gz /data1/20231115.tar.gz
cp /home/20240501.tar.gz /data1/20231116.tar.gz
以此类推
每个盘符放21天的文件,然后跳到下一个盘符,继续复制。
copyBak.sh 代码:
#!/bin/bash
#OK的
backup_dir="/tmp"
backup_files=("20240501.tar.gz" "20240502.tar.gz" "20240503.tar.gz" "20240504.tar.gz" "20240505.tar.gz")
disk_dirs=("/data1" "/data2" "/data3" "/data4" "/data5" "/data6" "/data7" "/data8" "/data9" "/data10")
days=180
files_per_day=1
files_per_disk=21
current_day=$((days + 1))
for backup_file in "${backup_files[@]}"
do
for disk_dir in "${disk_dirs[@]}"
do
file_count=$(ls -1 "$disk_dir" | wc -l)
if [ $file_count -ge $files_per_disk ]; then
echo "Folder $disk_dir already contains $files_per_disk files, skipping..."
continue
fi
for (( i=1; i<=$files_per_disk; i++ ))
do
cp "$backup_dir/$backup_file" "$disk_dir/$(date -d "$current_day days ago" +%Y%m%d).tar.gz"
current_day=$((current_day - 1))
done
done
done
5.2、在已有180天备份文件的基础上,做日期的调整。
步骤1 mv改名:
cd /home/xx/shellDir/2407File
find /data* -type f -name "*.tar.gz" | sort > alreadyFileList.txt
bash createDateList.sh > 180dayList.txt
paste -d ' ' alreadyFileList.txt 180dayList.txt > merged.txt
bash changFile.sh
### alreadyFileList.txt 部分内容:
/data1/backup/10.xx.xx/mysql/20231112.tar.gz
/data1/backup/10.xx.xx/mysql/20231113.tar.gz
/data9/backup/10.xx.xx/mysql/20240510.tar.gz
### createDateList.sh 内容:
#!/bin/bash
start_date="2024-01-22"
end_date="2024-07-20"
while [ "$start_date" != "$end_date" ]; do
echo $(date -d "$start_date" +%Y%m%d)
start_date=$(date -I -d "$start_date + 1 day")
done
echo $(date -d "$end_date" +%Y%m%d)
### merged.txt 内容
/data1/backup/10.xx.xx/mysql/20231112.tar.gz 20240122
/data9/backup/10.xx.xx/mysql/20240510.tar.gz 20240720
### changFile.sh 内容
#!/bin/bash
IFS=$'\n'
FILE_INFO=merged.txt
for metaFile in $(cat $FILE_INFO); do
oldFile=$(echo $metaFile | awk '{print $1}')
newDate=$(echo $metaFile | awk '{print $2}')
path=$(echo $oldFile | grep -oP ".*(?<=\/)")
#echo -e "mv ${oldFile} ${path}${newDate}.tar.gz" | bash
echo -e "mv ${oldFile} ${path}${newDate}.tar.gz"
#mv ${oldFile} ${path}${newDate}.tar.gz
done
echo -e "------end-------------\n"
步骤2 使用touch改文件修改时间:
cd 2rd/
find /data* -type f -name "*.tar.gz" | sort > fileList.txt
grep -oP "2024[0-9]{4}" fileList.txt | awk '{print "touch -a -m -t " $1 "0522.00"}' > touchList.txt
paste -d ' ' touchList.txt fileList.txt > mergedTouch.txt
#然后手动执行mergedTouch.txt里面的内容,来修改文件的时间
### fileList.txt 内容:
/data1/backup/10.xx.xx/mysql/20240122.tar.gz
/data9/backup/10.xx.xx/mysql/20240720.tar.gz
### touchList.txt 内容
touch -a -m -t 202401220522.00
touch -a -m -t 202401230522.00
### mergedTouch.txt 内容
touch -a -m -t 202401220522.00 /data1/backup/10.xx.xx/mysql/20240122.tar.gz
touch -a -m -t 202407200522.00 /data9/backup/10.xx.xx/mysql/20240720.tar.gz
六、 在bclinux Euler 21.10 安装mysql5.7 客户端 (为了使用mysql 、mysqldump等指令)(rpm安装)
wget https://mirrors.cmecloud.cn/bclinux/oe21.10/update/x86_64/Packages/mariadb-common-10.3.34-1.oe1.x86_64.rpm
wget https://mirrors.cmecloud.cn/bclinux/oe21.10/update/x86_64/Packages/mysql5-common-5.7.34-2.oe1.x86_64.rpm
wget https://mirrors.cmecloud.cn/bclinux/oe21.10/update/x86_64/Packages/mysql5-5.7.34-2.oe1.x86_64.rpm
rpm -ivh mariadb-common-10.3.34-1.oe1.x86_64.rpm
rpm -ivh mysql5-common-5.7.34-2.oe1.x86_64.rpm
rpm -ivh mysql5-5.7.34-2.oe1.x86_64.rpm
#有网环境则 yum install mysql5
七、 在bclinux 8.6 安装mysql8.0.26 客户端 (为了使用mysql 、mysqldump等指令)(rpm安装)
wget https://mirrors.cmecloud.cn/bclinux/el8.6/AppStream/x86_64/os/Packages/mysql-8.0.26-1.0.1.module%2Ban8.4.0%2B10570%2Bea0623f5.x86_64.rpm
wget https://mirrors.cmecloud.cn/bclinux/el8.6/AppStream/x86_64/os/Packages/mysql-common-8.0.26-1.0.1.module%2Ban8.4.0%2B10570%2Bea0623f5.x86_64.rpm
rpm -ivh mysql-common-8.0.26-1.0.1.module+an8.4.0+10570+ea0623f5.x86_64.rpm
rpm -ivh mysql-8.0.26-1.0.1.module+an8.4.0+10570+ea0623f5.x86_64.rpm
八、k8s集群更新pod的镜像版本后一直pending,其中一节点被标记 SchedulingDisabled的处理方式
#报错信息
pod web-5674695989-nmbvx一直pending。
kubectl describe -n xx pod web-5674695989-nmbvx
#显示
Warning FailedScheduling 48s (x5 over 5m3s) default-scheduler 0/5 nodes are available: 1 node(s) were unschedulable, 2 node(s) didn't match Pod's node affinity/selector, 2 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didn't tolerate.
排查操作:
#查看污点情况
kubectl get nodes -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.taints}{"\n"}'
kubectl get nodes -o=custom-columns=NAME:.metadata.name,TAINTS:.spec.taints
kubectl get nodes xxx-54 -o yaml
#参考博客:https://stackoverflow.com/questions/55432764/my-worker-node-status-is-ready-schedulingdisabled
最终处理方式 二选一
1、kubectl uncordon <node-name> #使用的方法
2、kubectl patch node NodeName -p "{\"spec\":{\"unschedulable\":false}}"
九、使用阿里云镜像服务来代理下载k8s镜像
###
#no
docker pull registry.k8s.io/metrics-server/metrics-server:v0.6.3
#ok 阿里云的
docker pull registry.aliyuncs.com/google_containers/metrics-server:v0.6.3
metrics-server的yaml需要加上
containers:
- args:
- --kubelet-insecure-tls
#参考:
https://developer.aliyun.com/article/759310
https://zhuanlan.zhihu.com/p/429685829
https://www.cnblogs.com/gaohongyu/p/14275873.html
https://www.cnblogs.com/tylerzhou/p/10971341.html
十:k8s安全测评漏洞:SSL/TLS协议信息泄露漏洞(CVE-2016-2183)
修改kubelet 。 静态pod : etcd 、kube-apiserver
注意事项:
静态Pod路径/etc/kubernetes/manifests下不要存在多余的备份,否则新增的参数并不会生效。(而且没报错信息)
比如之前做的“错误”操作所导致不生效。将备份的文件移走/删除后正常。
cd /etc/kubernetes/manifests ; cp etcd.yaml etcd.yaml_bak0625 ; cp kube-apiserver.yaml kube-apiserver.yaml_bak0625
(有点类似之前helm那样。做了备份,然后无法正常 uninstall / install)
修改etcd.yaml 、 kube-apiserver.yaml后,他是立刻生效/重启的。 如果有报错(比如kubectl get node),可能要等5分钟后他就自动修复了。
参考博主:https://blog.csdn.net/Yang_RR/article/details/138616193#comments_33452889