分类
未分类

k8s 1.26.1 使用kubeadm安装 时遇到的问题

问题1:sysctl -p 报错

sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-iptables: No such file or directory
sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-ip6tables: No such file or directory

解决1:

modprobe br_netfilter
sysctl -p

问题2:1.24后不提供对docker的原生支持

解决2:

cat > /etc/sysconfig/kubelet <<EOF
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
EOF

systemctl start docker
cat > /etc/docker/daemon.conf <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
systemctl daemon-reload && systemctl enable docker && systemctl restart docker


#安装cri-docker
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.1/cri-dockerd-0.3.1-3.el7.x86_64.rpm
rpm -ivh cri-dockerd-0.3.1-3.el7.x86_64.rpm
systemctl enable cri-docker && systemctl restart cri-docker

完成部署:

[root@k8smaster01 ~]# kubectl get nodes
NAME          STATUS   ROLES           AGE   VERSION
k8smaster01   Ready    control-plane   23m   v1.26.1
k8snode01     Ready    <none>          22m   v1.26.1
k8snode02     Ready    <none>          22m   v1.26.1
[root@k8smaster01 ~]# kubectl get pods -A
NAMESPACE          NAME                                       READY   STATUS    RESTARTS        AGE
calico-apiserver   calico-apiserver-76544f9bdf-5mjlh          1/1     Running   4 (4m ago)      18m
calico-apiserver   calico-apiserver-76544f9bdf-gbk7g          1/1     Running   2 (16m ago)     18m
calico-system      calico-kube-controllers-6b7b9c649d-8x2hd   1/1     Running   2 (4m27s ago)   20m
calico-system      calico-node-2tz4p                          1/1     Running   1 (17m ago)     20m
calico-system      calico-node-47bxr                          1/1     Running   1 (16m ago)     20m
calico-system      calico-node-cc24f                          1/1     Running   2 (4m27s ago)   20m
calico-system      calico-typha-67b9957b54-bz9zm              1/1     Running   2 (15m ago)     20m
calico-system      calico-typha-67b9957b54-rnnl7              1/1     Running   2 (16m ago)     20m
calico-system      csi-node-driver-9956t                      2/2     Running   2 (16m ago)     19m
calico-system      csi-node-driver-kzmhg                      2/2     Running   3 (4m26s ago)   20m
calico-system      csi-node-driver-zqfmv                      2/2     Running   2 (17m ago)     19m
kube-system        coredns-787d4945fb-fjt46                   1/1     Running   2 (4m22s ago)   24m
kube-system        coredns-787d4945fb-xs2q9                   1/1     Running   2 (4m22s ago)   24m
kube-system        etcd-k8smaster01                           1/1     Running   2 (4m26s ago)   24m
kube-system        kube-apiserver-k8smaster01                 1/1     Running   2 (4m17s ago)   24m
kube-system        kube-controller-manager-k8smaster01        1/1     Running   2 (4m27s ago)   24m
kube-system        kube-proxy-2v55f                           1/1     Running   1 (16m ago)     23m
kube-system        kube-proxy-2whbr                           1/1     Running   2 (4m27s ago)   24m
kube-system        kube-proxy-mw54f                           1/1     Running   1 (17m ago)     23m
kube-system        kube-scheduler-k8smaster01                 1/1     Running   2 (4m27s ago)   24m
tigera-operator    tigera-operator-54b47459dd-5vnt6           1/1     Running   5 (4m15s ago)   22m
分类
未分类

proxmox更换主机名后 恢复消失主机

将 /var/lib/rrdcached/db/ 子目录中的文件名更换为新主机名

重启后可在https://ip:8006中看到以前的主机,但开机报错,备份后还原即可开机。

分类
未分类

openwrt 精品网 使用脚本脚本获取58.32地址

#!/bin/sh
while (true);
do
        date=$(date +%Y-%m-%d\ %H:%M:%S)
        ip=$(ifconfig pppoe-wan 2> /dev/null | grep 'inet addr' | awk '{print $2}' | cut -d: -f2)
        wanip=$(ifconfig pppoe-wan 2> /dev/null | grep 'inet addr' | awk '{print $2}' | cut -d: -f2 | awk -F '.' '{print $1"."$2}')

        if [ "$wanip" = "58.32" ]; then
        #拨到58.32保留IP 记录日志 一小时后再检测
                        echo "$date | IP: $ip | check after 60 min" >> /tmp/redial.log
                        sleep 3599
                        continue
        else
        #没拨到 记录日志 10分钟后重拨
                        echo "$date | IP: $ip | redial after 10 min" >> /tmp/redial.log
                        ifdown wan 
                        sleep 1
                        ifup wan
                        sleep 599
                        continue
        fi
done
分类
未分类

cloudcone 安装proxmox 无法加载内核 dd卡在grub

grub-mkconfig
mkdir /boot/grub2
grub-mkconfig -o /boot/grub2/grub.cfg
分类
未分类

MT300N V2 官方固件 安装frpc 插件 ipk包

上传ipk包 然后执行

opkg update; opkg install luci-lib-ipkg; opkg install *.ipk

ipk包:

内容回复可见.

分类
未分类

proxmox 7.0 添加CPU Nvme HDD温度监控

需要安装sensors和hddtemp并修改两个文件:

apt-update && apt-get install lm-sensors hddtemp -y

修改文件前请备份,改完重启服务后需要清理缓存,如果白屏或者菊花,请仔细检查配置文件。

1.第一个文件: 修改一处

 vi /usr/share/perl5/PVE/API2/Nodes.pm 

在364行附近 可以直接搜索my $dinfo = df(‘/’, 1);

在其后添加:

$res->{CPUtemperature} = sensors;
$res->{Nvmetemperature} = sensors;
$res->{HDDtemperature} = hddtemp /dev/sda;

2.第二个文件:修改二处

vi /usr/share/pve-manager/js/pvemanagerlib.js

在34827行左右 可以直接搜索 textField: ‘pveversion’,

在其后添加:

  {
            itemId: 'version',
            colspan: 2,
            printBar: false,
            title: gettext('PVE Manager Version'),
            textField: 'pveversion',
            value: '',
        },
#add=======================================================
        {
            itemId: 'CPUtemperature',
            colspan: 2,
            printBar: false,
            title: gettext('CPU Temperature'),
            textField: 'CPUtemperature',
            renderer: function(value){
                const c0 = value.match(/Core 0.*?\+([\d\.]+)?/)[1];
                const c1 = value.match(/Core 1.*?\+([\d\.]+)?/)[1];
                const c2 = value.match(/Core 2.*?\+([\d\.]+)?/)[1];
                const c3 = value.match(/Core 3.*?\+([\d\.]+)?/)[1];

                return `Core0: ${c0}℃ | Core1: ${c1}℃ | Core2: ${c2}℃ | Core3: ${c3}℃ `
                                        }
        },
        {
            itemId: 'Nvmetemperature',
            colspan: 2,
            printBar: false,
            title: gettext('Nvme Temperature'),
            textField: 'Nvmetemperature',
            renderer: function(value){
                const nvme = value.match(/Composite.*?\+([\d\.]+)?/)[1];

                return `Nvme: ${nvme}℃ `
                                        }
        },
        {
            itemId: 'HDDtemperature',
            colspan: 2,
            printBar: false,
            title: gettext('HDD Temperature'),
            textField: 'HDDtemperature',
            renderer: function(value) {
                value = value.replace(/Â/g, '');
                return value.replace(/\n/g, '<br>')
            }
        },
#end=======================================================
        {
            itemId: 'repositoryStatus',
            colspan: 2,
            printBar: false,
            title: gettext('Repository Status'),
            setValue: function(value) { // for binding below
                this.updateValue(value);
            },
            bind: {
                value: '{repoStatusMessage}',
            },
        },

在34719行附近 可以直接搜索return fmt(gettext(‘No Proxmox VE repository enabled!’)

修改height : 400 (*需按情况修改,每多一行数据增加25)

                    return fmt(gettext('No Proxmox VE repository enabled!'), 'exclamation-circle critical');
                }

                return Proxmox.Utils.unknownText;
            },
        },
    },
#edit=================================
    height: 400,
#edit=================================
    bodyPadding: '15 5 15 5',

    layout: {
        type: 'table',
        columns: 2,
        tableAttrs: {
            style: {
                width: '100%',

3.重启服务

systemctl restart pveproxy

4.清理浏览器缓存后可以看到效果

height:375效果:

height:400效果:

分类
未分类

sftp客户端登陆使用chroot的服务器 时间不正确

sftp开启了chroot安全登录后,无法访问不了系统的时区文件,需要在用户chroot的目录下,创建一层etc目录,并将时区文件复制进etc目录。

mkdir /xxx/etc
cp /usr/share/zoneinfo/Asia/Shanghai xxx/etc/localtime
分类
未分类

proxmox + 黑群晖6.2.3+半白+网卡 sata硬盘直通 安装记录

硬件:双网口主板 + m.2(用于安装proxmox和黑群引导) + sata盘(群晖系统和数据盘)

这样可以保证数据的安全,m.2如果故障,更换m.2重装proxmox环境加黑群引导,sata盘上的群晖可以直接拉起(sata可通过群晖raid来保护)。如果三者全部安装在同一块盘上,请前置整列卡或主板raid1,否则请勿存放重要数据,安全毫无保障,除非只是想装来玩玩。

开始安装:

1.先下载debian10镜像

我用的是网络安装包 软碟通写入u盘

2.uefi启动u盘,在m.2上最小化安装debian10,sata盘先不用接以免选错盘,进入系统后参考官方文档在debian10上安装proxmox 6.2 没什么问题 不再赘述

以前一直使用debian9+proxmox5.4,5.4现在已经停止支持了,这次装了6.2感觉良好,界面和5.4保持一致,用6.2没有任何不适应,以后的新机器应该都会直接上D10+PVE6.x了。

安装后确定没报错,访问https://ip:8006,可以出来页面说明安装成功,重启一次机器(重启加载proxmox内核否则无法创建虚拟机)。然后访问登陆 proxmox管理地址。

3.开始安装

准备好引导和群晖系统

我选择918引导+6.2.3系统 918引导需要cpu为Haswell(4代intel)及以上,最大支持8核心(线程)

需要其他版本的,引导和镜像的官方链接在下方:

引导:https://xpenology.com/forum/topic/13333-tutorialreference-6x-loaders-and-platforms/

黑群6.2.3镜像:https://archive.synology.com/download/DSM/release/6.2.3/25426/

准备好引导和系统后,将引导上传proxmox (如果是压缩包先解压,需要的文件是synoboot.img) 可参考下图

上传后点右上角新建虚拟机 可参考下图组

系统和硬盘默认 CPU和内存按需求填写 网络如果你有双亡口 则选择无网络设备 稍后添加直通网口给群晖 如果是单网口 则需要配置虚拟网卡和网桥 需要修改/etc/network/interfaces 信息

确认后等虚拟机创建完成后不要打开它,先为他添加直通网卡和sata设备(直通sata后所有的sata设备都会给直通群晖,所以proxmox需要安装在m.2) 可参考下图

分类
未分类

shell判断python和openssl版实现自动根据环境部署应用


#!/bin/sh
check()
{
#e.g. python version 2.7(P1.P2)
#e.g. openssl version 1.0.2(O1.O2.O3)
    P1=2
    P2=7
    O1=1

    UP1=`python -V 2&gt;&amp;1|awk '{print $2}'|awk -F '.' '{print $1}'`
    UP2=`python -V 2&gt;&amp;1|awk '{print $2}'|awk -F '.' '{print $2}'`
    UO1=`openssl version|awk '{print $2}'|awk -F '.' '{print $1}'`

   echo $UP1.$UP2
   echo $UO1


    if [ $UP1 -gt $P1 ]&amp;&amp;[ $UO -eq $O ];then
        echo 'Your python version is 3+!, Openssl version is 1+'
    elif [ $UP1 -eq $P1 ]&amp;&amp;[ $UO -eq $O ];then
        if [ $UP2 -ge $P2 ]&amp;&amp;[ $UO -eq $O ];then
            echo 'Your python version is 2.7+!, Openssl version is 1+'
        elif [ $UP2 -lt $P2 ]&amp;&amp;[ $UO -eq $O ];then
            echo 'Your python version is 2.7-!, Openssl version is 1+'
        elif [ $UP2 -lt $P2 ]&amp;&amp;[ $UO -lt $O ];then
            echo 'Your python version is 2.7-!, Openssl version is 1-'
        fi
    else
           echo 'no python , Openssl version is 1-'
    fi
}
check
分类
未分类

使用nmap 每秒监控端口开启情况

端口监控脚本:touch 1.sh

#!/bin/bash
ADDR=10.1.25.2
TMPSTR=`ping ${ADDR} -c 1 | sed '1{s/[^(]*(//;s/).*//;q}'`
port=443
check_ip=`nmap $TMPSTR -p $port|grep open|wc -l`
starttime=$(date +%Y-%m-%d\ %H:%M:%S)
echo $starttime
if [ $check_ip -eq 0 ];then
	echo "${starttime}	${TMPSTR}:${port}	DEAD!!!" >>error.txt
fi
echo "${starttime}	${TMPSTR}:${port}	OK" >>success.txt

如果需要每分钟检测一次 将 */1 * * * * /bin/bash 1.sh 加入crontab即可 如果需要秒级监控 则需要第二个脚本配合使用

touch 2.sh


#!/bin/bash
step=2
for (( i = 0; i &lt; 60; i=(i+step) )); do
    $(/bin/bash '第一个脚本的绝对路径')
    sleep $step
done
exit 0

然后再将*/1 * * * * /bin/bash 2.sh 加入crontab即可

监控输出效果如下