我正在尝试在 Kubernetes 集群上卸载并重新安装 cert-manager。他们的卸载文档提到:
在继续之前,请确保用户创建的所有 cert-manager 资源均已删除。您可以使用以下命令检查任何现有资源:
$ kubectl get Issuers,ClusterIssuers,Certificates,CertificateRequests,Orders,Challenges --all-namespaces
该命令输出数百个资源,分布在二十几个命名空间中。
如何有效地删除它们,而不删除命名空间中的其他任何内容?
该kubectl delete命令在删除所有特定类型时需要指定命名空间,如下所示:kubectl delete certificates -n example-ns,所以这在这里不好。
在指定的同时按名称删除每个循环-A也不起作用,因为我需要指定名称空间:
$ kubectl delete -A order.certmanager.k8s.io/fcfa95477bc0149dbc16c99c54faa82e-cert-1862418815
error: a resource cannot be retrieved by name across all namespaces
Run Code Online (Sandbox Code Playgroud)
这里正确的 cli 魔法是什么?
我刚刚在Ubuntu 20.04下安装了MS-SQL 2019(我第一次在linux下安装这个Db)。我打开了端口 1433,并且可以通过 Windows 笔记本电脑上的 Management studio 通过服务器 IP 地址连接到它。
但是我认为服务器浏览器服务没有运行,因为即使我打开了端口 1434,我也无法浏览数据库。我还怀疑该服务可能默认被禁用。我进行了很多谷歌搜索,但似乎找不到浏览器服务的 Linux 相关说明。
如何检查浏览器服务是否正在运行?如果没有,我需要采取哪些步骤才能让它在 Ubuntu 下运行?
本文解释了为什么TCP-over-TCP 可能会造成性能灾难。
我对此问题的理解是,“外部”TCP 连接处理数据包丢失和网络拥塞,并通过增加超时(从而降低吞吐量)来相应地采取行动。然而,“内部”TCP 连接看不到这些网络状况,因为它们是由外部 TCP“固定”的。因此,“内部”TCP 继续以先前的速度发送数据包,从而破坏了“外部”TCP 连接的内部发送缓冲区。
我的问题是:
非常感谢您的回答!
我的服务器托管了 2 个不同的网站,这些网站最近在浏览器上加载速度很慢。
在网上查看了潜在原因和解决方案后,我遇到了这个线程。
建议的解决方案之一是禁用我想尝试的 IPv6,但是,由于我不精通该领域,因此我首先想确保我完全了解这将做什么(这样做的后果是什么) ,如果可以,那么知道在不破坏我的服务器/网站的情况下这样做的安全方法是什么。
是否有任何技术原因为什么我不应该在硬件 RAID 之上的虚拟机管理程序上的 VM 内使用 ZFS 文件系统?
我们注意到,我们的一些 GCE 实例在 /home/deploy/.config/gcloud/logs(“deploy”是我们的应用程序进程运行的用户)下积累了大量日志文件(1.6GB)。看来保存了一个月的日志文件。每隔几秒左右就会创建一个文件。
每个文件如下所示:
2020-12-11 20:52:02,105 DEBUG root Loaded Command Group: ['gcloud', 'config', 'config_helper']
2020-12-11 20:52:02,107 DEBUG root Running [gcloud.config.config-helper] with arguments: [--format: "json", --verbosity: "none"]
2020-12-11 20:52:02,130 DEBUG google_auth_httplib2 Making request: GET http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/xxx/?recursive=true
2020-12-11 20:52:02,137 DEBUG google_auth_httplib2 Making request: GET http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/xxx/token
2020-12-11 20:52:02,157 INFO root Display format: "default json"
2020-12-11 20:52:02,159 INFO ___FILE_ONLY___ {
"configuration": {
"active_configuration": "default",
"properties": {
"core": {
"account": "xxx",
"disable_usage_reporting": "True",
"project": "xxx",
"verbosity": "none"
}
}
},
"credential": {
"access_token": "xxx", …Run Code Online (Sandbox Code Playgroud) 环境: Nginx、Node.js
我已阅读有关 Resolver 的 Nginx 文档,我了解它用于 DNS,并将其包含在我的配置中。然而我并不完全理解它在做什么或者何时以及为什么我需要它。
在下面的简化配置中,当我打开 nginx 和 node.js 服务器并在浏览器中请求页面时,一切都会按预期工作,并且不会引发任何警告或错误。我使用的 IP 地址resolver是 google 的公共 DNS 服务器。
http {
resolver 8.8.8.8 8.8.4.4 [2001:4860:4860::8888] [2001:4860:4860::8844];
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
root /srv/example/views/public;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我删除resolver 8.8.8.8 8.8.4.4 [2001:4860:4860::8888] [2001:4860:4860::8844];启动服务器和请求页面时,我在 error.log 中收到警告。同时,浏览器中一切正常,不会向客户端发送错误或警告。
2020/12/11 20:04:24 [警告] 1191#1191:在请求证书状态时没有定义解析器来解析 r3.o.lencr.org,响应者:r3.o.lencr.org,证书:“/etc/让加密/live/example.com/fullchain.pem“
resolver将 Google 的 …
我有一台安装了 ubuntu 20.04 的笔记本电脑,用作服务器。因此我希望它永远不会暂停。
默认情况下,当盖子关闭时它会自动暂停。
因为我只能通过 ssh 访问它(并且没有安装 X),所以我需要通过 CLI 禁用它。
多个站点建议使用
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
这确实阻止笔记本电脑在盖子关闭时暂停,但导致 systemd-logind 消耗 100% cpu 并连续记录以下内容:(每秒多次)
systemd-logind[514]: Suspending...
systemd-logind[514]: Unit suspend.target is masked, refusing operation.
systemd-logind[514]: Failed to execute suspend operation: Permission denied
Run Code Online (Sandbox Code Playgroud)
谁能告诉我如何正确禁用暂停?
我是网络新手,所以我是第一次尝试。我创建了一个连接到 VPN 服务器的 openvpn docker。在 docker 容器内运行wget -q -O - https://api.myip.com可确认 docker 的网络已正确连接到 VPN 并且 IP 属于 VPN 服务器。现在我想尝试通过docker容器路由主机流量,并在主机流量使用docker的VPN连接的容器外部实现相同的结果。我不太清楚如何从 docker 主机 <-> 容器关系中做到这一点,所以我想也许我可以利用 docker 中的端口映射功能,并在 docker 中建立一个 Web 代理来处理任何 http/https要求。
因此,我在同一个 docker 中建立了鱿鱼和 openvpn 服务器并公开了端口 3128(因为这是鱿鱼正在侦听的端口)。主机上的 wget 命令变为:
wget -q -O - https://api.myip.com -e use_proxy=yes -e http_proxy=localhost:12345
但测试表明流量没有通过 docker 的 VPN 连接。相反,结果显示通信是通过主机的互联网连接进行的。
我使用以下 Docker run 命令运行容器:
docker run --rm --cap-add NET_ADMIN --device /dev/net/tun --name vpn -it --sysctl net.ipv6.conf.all.disable_ipv6=0 -p 12345:3128 vpn-image
Run Code Online (Sandbox Code Playgroud)
上面的做法有错吗?通过多个 docker vpn 连接路由主机流量的最佳方法是什么?
以下资源表明这是可能的,但提供了特定于其用例的解决方案。如果有一个像 wget 或 …
我已经设置了 Prometheus 的 Alertmanager 来管理来自 Prometheus 的警报。我收到了从 Prometheus 发送到 Alertmanager 的警报,但故事到此结束。Alertmanager 永远不会将警报发送到我的电子邮件端点。
为了弄清楚警报在 Alertmanager 内部的具体位置结束其旅程,我想将日志级别从信息级别更改为调试级别,但无法弄清楚如何操作。即使现在找到日志似乎也是一个艰巨的任务,它不存在/var/log并且journalctl -u alertmanager包含的内容太少,以至于可能在某个地方还有另一条日志。
配置Alertmanager的手册页没有提到调试级别。我查看了源代码中提到的 log 并发现该设置应该命名为log.level. 将以下代码片段添加到配置 YAML 也没有帮助:
log:
level: debug
Run Code Online (Sandbox Code Playgroud)
因为 Alertmanager 无法启动,无法解析其配置文件。
debian ×2
networking ×2
openvpn ×2
cert-manager ×1
docker ×1
internal-dns ×1
ipv6 ×1
kubectl ×1
kubernetes ×1
linux ×1
nginx ×1
prometheus ×1
proxmox ×1
proxy ×1
sql-server ×1
suspend ×1
systemd ×1
tcp ×1
testing ×1
ubuntu ×1
ubuntu-20.04 ×1
vpn ×1
zfs ×1