Cgroup 常见问题集锦
本文永久链接: https://www.xtplayer.cn/linux/cgroup/cgroup-problem-sets/
applying cgroup configuration for process caused “No such device or address””: unknownError: failed to start container "default-http-backend": Error response from daemon: OCI runtime create failed: container_linux.go:265: starting container process caused "process_linux.go:264: applying cgroup configuration for process caused \"No such device or address\"": unknownError: failed to start container &qu ...
阅读全文Linux Netfilter 调优
本文永久链接: https://www.xtplayer.cn/linux/netfilter/linux-netfilter-optimization/
如果您正在为高流量的 Web/DNS 服务器提供服务,并且最近使该服务器 PING 丢失并且并非所有 HTTP 请求都成功。您可以开始检查系统日志。并且如果您看到类似下面的内容,那么下面的指南将帮助您调整 Linux 服务器以正确处理流量负载。
Mar 22 21:25:55 localhost kernel: nf_conntrack: table full, dropping packet.Mar 22 21:26:00 localhost kernel: printk: 11 messages suppressed.Mar 22 21:26:00 localhost kernel: nf_conntrack: table full, dropping packet.Mar 22 21:26:05 localhost kernel: printk: 16 messages suppressed.
状态查看
buck ...
阅读全文将博客搬至 CSDN
本文永久链接: https://www.xtplayer.cn/csdn/blog-sync-to-csdn/
我的博客即将同步至 CSDN 社区,这是我的 CSDN 主页:https://blog.csdn.net/hongxiaolu
阅读全文4 步将 Rancher2.5.x 迁移至任意 K8S 发行版
本文永久链接: https://www.xtplayer.cn/rancher/rancher2-x-migration/
Rancher v2.5 之前的版本是不支持将 Rancher 迁移到其他集群的,但可以利用一些“黑科技”实现将 Rancher 迁移到新的集群,在之前发布的文章「多场景解析如何迁移 Rancher Server」有过介绍。
从 Rancher v2.5 开始,可以使用 rancher-backup operator 来备份和恢复 Rancher,rancher-backup 工作时不需要暴露 etcd,因为 operator 通过调用 kube-apiserver 来收集资源。我们可以利用此特性将 Rancher 迁移到任何标准 Kubernetes 发行版的集群中。
迁移过程概要:
创建 Rancher 备份,并将备份上传到备份存储位置
创建 Rancher local 集群
使用 Restore 自定义资源从备份中还原到 local 集群
使用 Helm 安装 Rancher
迁移先决条件:
Rancher 版本必须是 v2.5.0 及以上。
如果你 ...
阅读全文一通百通,一文实现灵活的 K8S 基础架构!
本文永久链接: https://www.xtplayer.cn/kubernetes/k8s-infrastructure/
Kubernetes 是当前最为流行的开源容器编排平台,成为众多企业构建基础架构的首选。在本文中,我们将探讨针对你的用例构建基础设施的最佳方式,以及你可能要根据各种限制条件做出的各种决定。
架构设计你的架构应该在很大程度上围绕你的用例来设计,因此在设计过程中你需要非常仔细以确保该基础架构能够支撑你的用例,在必要的时候也可以寻求外部专业团队的帮助。在架构设计的开始保证方向正确十分重要,但是这并不意味着不会发生错误,而且随着每天都有新的技术或研究横空出世,你可以看到变革已经成为常态,并且你的架构设计思维有可能过时。
这就是为什么我强烈建议你采用 Architect for Chang 的原则,让你的架构成为一个模块化的架构以便在未来有需要的时候你可以灵活地在内部进行改变。
让我们看看在考虑 client-server 模型的情况下如何实现系统架构的目标。
切入点:DNS在任何典型的基础架构中(无论是否是云原生架构),一个消息请求必须先由 DNS 服务器解析,并返回 ...
阅读全文Longhorn 1.1 ARM 支持
当 DevOps 团队同时使用 Rancher 和 Longhorn 1.1 时,他们可以轻松管理位于任意位置的持久化数据卷,无论这些持久化数据卷位于云端、数据中心抑或边缘。
2021 年 1 月 27 日,全球开源创新领导者及 Rancher 容器管理平台所有者 SUSE 正式宣布发布 Longhorn 1.1。2019 年 10 月,Longhorn 成为了云原生计算基金会(CNCF)的沙箱(Sandbox)项目。2020 年 6 月,Longhorn 正式 GA。自此,Longhorn 的采用率增长了 235%,并成为了 Kubernetes 存储领域的中流砥柱。随着 Longhorn 1.1 的发布,Rancher 用户现已可以在边缘的低功耗硬件中使用 Kubernetes 原生存储解决方案。
Longhorn 1.1 帮助 DevOps 团队在任何 Kubernetes 环境中轻松管理持久化数据卷,同时为云原生存储带来企业级的避免供应商锁定(Lock- in)的解决方案。通过扩展对 ARM64 的支持、自我修复功能以及增强的性能可见性,最新版本为 Rancher 用户在边 ...
阅读全文kubernetes secret device or resource busy
本文永久链接: https://www.xtplayer.cn/kubernetes/kubernetes-secret-device-or-resource-busy/
如上图,有时候升级业务 Pod 时,旧业务 Pod 一直处于 removing 状态。在主机上执行 docker ps -a | grep <pod 名称> 也未能查询到残留容器。登录 Pod 所在的主机,执行 docker logs kubelet --tail 100 查看 kubelet 的运行日志,可以看到以下错误日志:
Error: "UnmountVolume.TearDown failed for volume \"default-token-r9sxw\" (UniqueName: \"kubernetes.io/secret/bc895c3f-2fbf-11eb-a93a-4cd98f444b4d-default-token-r9sxw\") pod \"bc895c3f-2fbf-11eb-a93a-4cd98f444 ...
阅读全文Rancher2 OpenLDAP 认证
本文永久链接: https://www.xtplayer.cn/rancher/authentication/rancher2-openldap-authentication/
版本支持: Rancher v2.0.5+
注意 在开始之前,请熟悉 外部身份验证配置和主要用户 的概念。
如果您的组织使用 LDAP 进行用户身份验证,则可以将 Rancher 与 OpenLDAP 服务集成,以提供统一的用户身份验证。
OpenLDAP 身份验证流程
当用户尝试使用 LDAP 账号登录 Rancher 时,Rancher 使用具有 搜索目录和读取用户/组权限 的服务帐户创建对 LDAP 服务器的初始绑定(账号初始化)。
然后,Rancher 使用基于提供的用户名和配置的属性映射的搜索过滤器在目录中搜索用户。
找到用户后,使用用户的 DN 和提供的密码对另一个 LDAP 绑定请求进行身份验证。
验证成功后,Rancher 将从用户对象的成员资格属性中解析组成员资格,并根据配置的用户映射属性执行组搜索。
注意 在配置之前请先熟悉 外部身份验证配置和主要用户的概念。
先决条件必须使用 ...
阅读全文Rancher2 Azure AD 认证
本文永久链接: https://www.xtplayer.cn/rancher/authentication/rancher2-azure-ad-authentication/
版本支持: Rancher v2.0.3+
如果您在 Azure 中启用了 Active Directory(AD) 服务,则可以配置 Rancher 以允许您的用户使用 Azure AD 帐户登录。
注意 在开始之前,请熟悉 外部身份验证配置和主要用户 的概念。
在 Azure 中注册 Rancher在 Rancher 中启用 Azure AD 之前,必须向 Azure 注册 Rancher。
Azure 分 Global 区和中国区:
中国区 Portal 地址:https://portal.azure.cn
Global 区 Portal 地址:https://portal.azure.com
本文配置以中国区为例,Global 区方法类似
步骤中的配置需要管理访问权限,所以需要以管理用户身份登录 Microsoft Azure portal。
搜索应用注册并打开
点击新应用程序注册, 并 ...
阅读全文Rancher2 Github 认证
本文永久链接: https://www.xtplayer.cn/rancher/authentication/rancher2-github-authentication/
版本支持: Rancher v2.0.0+
注意 在开始之前,请熟悉 外部身份验证配置和主要用户 的概念。
在使用 GitHub 的环境中,您可以配置 Rancher 以允许使用 GitHub 凭据登录。
使用具有管理员角色的本地用户登录 Rancher。
在全局视图中,从主菜单中选择 安全>认证。
选择 GitHub。
在 1.设置 Github 应用中,点击 点击此处。
接着弹出 Github 的登录页面,输入账号和密码进行登录。
如果您使用的是本地部署的企业版 Github 服务器,请通过浏览器打开新的窗口访问 https://<github_server_url>/settings/developers。
登录 Github 后,点击 new OAuth app,并填写相关参数。
Homepage URL: 主页 URL,查看 Ran ...
阅读全文rancher 创建自定义 k8s 集群
本文永久链接: https://www.xtplayer.cn/rancher/clusters/rancher-create-custom-cluster/
Rancher 创建自定义 kubernetes 集群,适用于拥有内部虚拟机、内部物理主机,或者没有提供 kubernetes 云服务的云服务器,通过自定义安装方式来快速安装 kubernetes 集群。
主机和端口需求访问 https://docs.rancher.cn/docs/rancher2/installation_new/requirements/_index/ 了解基础环境硬件配置和端口需求的具体信息。
添加集群
进入全局/集群视图,再点击添加集群
选择自定义
设置集群名称
成员与角色
集群成员对应了 Rancher 中的一个真实的用户,角色则表示此用户具有的集群权限。要想在创建集群时添加成员和对应的成员角色,需要首先在全局下添加用户和集群角色。
集群选项
kubernetes 版本
每个 Rancher 发行版对应了不同的 kubernetes 版本,可根据需求 ...
阅读全文macOS Big Sur 11.2 rc 候选版更新
今日凌晨,苹果面向开发人员推送了 macOS Big Sur 11.2 发布候选版(RC)更新。
macOS Big Su11.2 beta 2 消除了一项功能,该功能允许 Apple 应用程序绕过第三方防火墙,安全工具和 VPN 应用程序。macOS Big Su11 包含一个 ContentFilterExclusionList 列表,该列表使 Apple 的应用程序(例如 App Store,Maps,iCloud 等)可以避免用户安装的防火墙和 VPN 应用程序。这些应用程序无法筛选或检查某些内置 Apple 应用程序的流量。该功能已 macOS Big Su11.2 中删除。
11.2 RC 版本更新还提高了蓝牙的可靠性,并修复了以下问题:
使用 HDMI 到 DVI 转换器连接到 Mac mini(M1,2020)时,外部显示器可能会显示黑屏。
在照片应用中对 Apple ProRAW 照片进行编辑可能无法保存。
禁用 iCloud Drive 的 “桌面和文档文件夹”选项后,iCloud Drive 可能会关闭。
输入管理员密码时,系统偏好设置可能无法解锁。
按下 ...
阅读全文记一次 request_sock_tcp possible syn flooding on port 事件处理
本文永久链接: https://www.xtplayer.cn/linux/network/request-sock-tcp-possible-syn-flooding-on-port/
TCP 三次握手
客户端发送 SYN(进入 SYNC_SENT 状态)
服务端返回 SYN+ACK(进入 SYNC_RECV 状态)
客户端发送 ACK(进入 ESTABLISHED 状态)
如果客户端在第 3 步时不发送 ACK 给服务端,那么服务端的 socket 就会处于 SYNC_RECV 状态。
TCP/IP backlog 参数backlog 其实是一个连接队列,在 Linux kernel 2.2 之前,backlog 大小包括半连接状态和全连接状态两种队列大小。
半连接状态为:服务器处于 Listen 状态时收到客户端 SYN 报文时放入半连接队列中,即 SYN queue(服务器端口状态为:SYN_RCVD)。
全连接状态为:TCP 的连接状态从服务器(SYN+ACK)响应客户端后,到客户端的 ACK 报文到达服务器之前,则一直保留在半连接状态中。当服务器接收 ...
阅读全文Rancher hosted Kubernetes AKS
本文永久链接: https://www.xtplayer.cn/rancher/clusters/rancher-hosted-kubernetes-aks/
注意: 因为 rancher 版本的更新, rancher 中有些参数可能与截图不一致。
Azure 部分操作
Rancher 对接 AKS 需要获取一下资源信息或操作
订阅 ID(Subscription ID)
应用 ID(Client ID)
应用密钥(Client Secret)
RBAC 角色授权
获取订阅 ID (Subscription ID)
主页 -> 订阅 -> 查看订阅 ID (Subscription ID)
获取应用 ID (Client ID)
首先需要注册一个应用 (App resgistrations)
主页 -> Azure Active Directory -> 应用注册(App resgistrations) -> 新注册(New registration)
输入应用名称,其余选项默认即可
得到应用 ID (Client ID)
获取 ...
阅读全文rancher 轮换证书
本文永久链接: https://www.xtplayer.cn/rancher/cert/rancher-rotate-cert/
警告 如果您的证书已经过期,请先不要升级 Rancher Server,根据 证书已过期导致无法连接 k8s 进行处理。
默认情况下,Kubernetes 集群使用 ssl 证书来加密通信,Rancher 自动为集群生成证书。在 Rancher v2.0.14、v2.1.9 之前的版本,Rancher 创建的集群 ssl 证书默认有效期为 1 年 (CA 证书默认 10 年),在 Rancher v2.0.14、v2.1.9 以及更高的版本中,Rancher 创建的集群 ssl 证书默认为 10 年 (CA 证书默认 10 年)。
通过 UI 轮换证书 (业务集群)可用版本: Rancher v2.2.0 +
在 Rancher v2.2.0 以及更高版本,可通过 UI 的证书轮换功能对集群证书进行更新,此功能适用于 自定义安装的集群。证书轮换之后,Kubernetes 组件将自动重新启动,重启不影响应用 Pod,重启时间需要 3 到 5 分钟。
...
阅读全文删除状态为 Failed、Evicted 的 Pod
本文永久链接: https://www.xtplayer.cn/kubernetes/kubectl-delete-evicted-pods/
#!/bin/bashkubectl get pods --all-namespaces -o go-template='{{range .items}} {{if (or (eq .status.phase "Evicted") (eq .status.phase "Failed" ))}} {{.metadata.name}}{{" "}} {{.metadata.namespace}} {{"\n"}}{{end}} {{end}}& ...
阅读全文tcpdump 手册
本文永久链接: https://www.xtplayer.cn/linux/network/tcpdump-man-page/
本文翻译至:https://www.tcpdump.org/manpages/tcpdump.1.html
基本参数# tcpdump -htcpdump version 4.9.3libpcap version 1.9.1 (with TPACKET_V3)OpenSSL 1.1.1g FIPS 21 Apr 2020Usage: tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ] [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ] [ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ] [ -Q in|out|inout ] [ -r file ] [ -s snaplen ] [ --time-stamp-pr ...
阅读全文配置 Network Manager 以忽略某些网络设备
本文永久链接: https://www.xtplayer.cn/linux/network/networkmanager-not-manager-container-network-interface/
Network Manager 是一个能够动态控制和配置网络的守护进程,对应 NetworkManager.service 服务,默认配置文件路径 /etc/NetworkManager/NetworkManager.conf。从 RHEL/CentOS 7 开始,网络功能默认由 NetworkManager 以服务的形式提供。Ubuntu 的 server 版本默认没有启用 NetworkManager。
默认情况下,NetworkManager 管理除 lo(环回)设备以外的所有设备。但是,在容器环境下很多网络设备是由网络驱动创建,NetworkManager 对容器网络设备的控制可能导致集群网络通信异常。因为需要将容器相关的设备设置为 unmanaged,以使 NetworkManager 忽略这些设备。
查看设备状态# 查看设备管理状态 ...
阅读全文自签名 ssl 证书 + ingress + 安装 Rancher HA
本文永久链接: https://www.xtplayer.cn/rancher/install/ha-self-signed-ssl-ingress/
节点软硬件要求节点硬件要求请参考:https://docs.rancher.cn/docs/rancher2/installation_new/requirements/_index/
节点基础环境配置请参考 基础环境配置
同步镜像如果你是在离线环境安装,请先访问 rancher 离线安装镜像同步,按照方法同步所有镜像到离线私有镜像仓库。如果主机能够直接拉取镜像,则跳过此步骤。
创建 rke 配置文件使用下面的示例创建 rancher-cluster.yml 文件,使用创建的 3 个节点的 IP 地址或域名替换列表中的 IP 地址。
注意: 如果节点有公网地址 和 内网地址地址,建议手动设置 internal_address:以便 Kubernetes 将内网地址用于集群内部通信。如果需要开启自动配置安全组或防火墙,某些服务(如 AWS EC2)需要设置 internal_address:。
node ...
阅读全文权威 ssl 证书 + ingress + 安装 Rancher HA
本文永久链接: https://www.xtplayer.cn/rancher/install/ha-authority-ssl-ingress/
节点软硬件要求节点硬件要求请参考:https://docs.rancher.cn/docs/rancher2/installation_new/requirements/_index/
节点基础环境配置请参考 基础环境配置
同步镜像如果你是在离线环境安装,请先访问rancher 离线安装镜像同步,按照方法同步所有镜像到离线私有镜像仓库。如果主机能够直接拉取镜像,则跳过此步骤。
创建 rke 配置文件使用下面的示例创建 rancher-cluster.yml 文件,使用创建的 3 个节点的 IP 地址或域名替换列表中的 IP 地址。
注意: 如果节点有公网地址 和 内网地址地址,建议手动设置 internal_address:以便 Kubernetes 将内网地址用于集群内部通信。如果需要开启自动配置安全组或防火墙,某些服务(如 AWS EC2)需要设置 internal_address:。
nodes: ...
阅读全文权威 ssl 证书 + Nodeport + 外部 L7 + 安装 Rancher HA
本文永久链接: https://www.xtplayer.cn/rancher/install/ha-nodeport-external-l7/
架构说明
节点软硬件要求节点硬件要求请参考:https://docs.rancher.cn/docs/rancher2/installation_new/requirements/_index/
节点基础环境配置请参考 基础环境配置
同步镜像如果你是在离线环境安装,请先访问rancher 离线安装镜像同步,按照方法同步所有镜像到离线私有镜像仓库。如果主机能够直接拉取镜像,则跳过此步骤。
创建 rke 配置文件使用下面的示例创建 rancher-cluster.yml 文件,使用创建的 3 个节点的 IP 地址或域名替换列表中的 IP 地址。
注意: 如果节点有公网地址 和 内网地址地址,建议手动设置 internal_address:以便 Kubernetes 将内网地址用于集群内部通信。如果需要开启自动配置安全组或防火墙,某些服务(如 AWS EC2)需要设置 internal_address:。
no ...
阅读全文