0%

参考了博客:https://www.jianshu.com/p/bd7ba22cf52b
其中说到了Prometheus-operator在扫描PodMonitor以及ServiceMonitor的配置是通过monitoring.coreos.com/v1中的Prometheus来定义的,通过serviceMonitorSelector和podMonitorSelector决定哪些ServiceMonitor和PodMonitor生效。如果选择器为空({})意味着会选择所有的对象。

阅读全文 »

在linux上可以使用

1
dmesg -T | egrep -i 'killed process'

来查询因为oom被杀掉的应用

linux查询因为oom被杀掉的进程_0

如果有被杀掉的应用,那么显示就会如上图

同时也可以使用journalctl -k 命令来查询系统的日志,如果有的话那么会在日志中显示完整的oom被杀掉的过程。

其中dmesg命令是用来在Unix-like系统中显示内核的相关信息的。dmesg全称是display message (or display driver),即显示信息。实际上,dmesg命令是从内核环形缓冲区中获取数据的。当我们在Linux上排除故障时,dmesg命令会十分方便,它能很好地帮我们鉴别硬件相关的error和warning。除此之外,dmesg命令还能打印出守护进程相关的信息,已帮助我们debug。因此OOM相关的信息可以在这里看到。

使用的是这个项目,https://github.com/CareyWang/sub-web
可以直接使用docker运行

1
docker run -d -p 58080:80 --restart always --name subweb careywong/subweb:latest

打开对应网址在指定位置输入对应的vmess协议的url或者其他协议的url即可完成转换,将转换完的url复制到clash中即可使用。

1
2
3
4
5
6
7
8
9
10
11
12
options = webdriver.ChromeOptions()
options.add_argument("--ignore-certificate-errors")
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_argument("--disable-blink-features")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
prefs = {"profile.managed_default_content_settings.images": 2, 'disk-cache-size': 4096}
options.add_experimental_option('prefs', prefs)
root_driver = webdriver.Chrome(options=options)
root_driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'
})

使用的测试网站https://bot.sannysoft.com/

首先使用对应的docker镜像来运行chrome webderiver,这是对应项目的主页:https://github.com/SeleniumHQ/docker-selenium
使用下面的命令来运行

1
2
3
$ docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-chrome:3.141.59-dubnium
#OR
$ docker run -d -p 4444:4444 --shm-size=2g selenium/standalone-chrome:3.141.59-dubnium

运行后,即可使用python运行selenium来连接,使用下面的代码即可

1
2
3
4
5
6
7
8
9
10
11
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

driver = webdriver.Remote(
command_executor="http://127.0.0.1:4444/wd/hub",
desired_capabilities=DesiredCapabilities.CHROME
)

driver.get("http://httpbin.org/ip")
print(driver.page_source)
driver.close()

看到正常输出信息即可。

有些时候需要将一些服务转为https的服务,这时候就需要https证书,但是正规的https证书是需要到CA去购买的,付费不说,申请也是需要周期的,在测试时,可以使用openssl库来生成一些临时的证书

在服务端设置了自己生成的证书,在客户端只需要手动的信任这个证书。

使用下列命令来生成临时的证书

阅读全文 »

当使用requests库来发送post请求时,不同的参数写法会使得request的header中content-type有不同的值。

Content-type为application/x-www-form-urlencoded

这应该是用的最多的一种情况,如果在发送post请求时,需要Content-type为application/x-www-form-urlencoded,则使用一下代码即可

阅读全文 »

安装还是比较简单的,直接按照kubernetes官网的教程来就可以了,但是唯一比较麻烦的点在于kubernetes相关的一些镜像的下载。
这些镜像是放在gcr上的,而国内无法通过代理的方式访问gcr,只能通过替换源的方式来下载这些镜像。

1. 安装k8s的runtime

这里选择使用docker作为k8s的runtime,可以直接使用docker官方提供的一键脚本

1
wget -qO- https://get.docker.com/ | sh

然后启动一下docker

1
systemctl start docker

查看一下docker的状态

1
systemctl status docker

设置docker使用的cgroupdriver,修改成和kubelet的一致,使用以下命令

1
2
3
4
5
cat <<EOF > /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

如果不修改这个cgroupdriver在kubelet启动时会出现如下报错

1
"Failed to run kubelet" err="failed to run Kubelet: misconfiguration: kubelet cgroup driver: \"systemd\" is different from docker cgroup driver: \"cgroupfs\""

然后运行docker即可

1
systemctl restart docker

然后查看docker的运行情况

1
systemctl status docker

看到以下的输出就说明docker正常启动了
国内环境搭建k8s_0

2. 安装kubelet、kubeadm、kubectl

按照官方的文档,链接

阅读全文 »