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-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 ...
阅读全文自签名 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 ...
阅读全文k8s 基础环境配置
本文永久链接: https://www.xtplayer.cn/kubernetes/k8s-basic-environment-configuration/
主机基础配置主机名配置因为 K8S 或者 FQDN 的规定,主机名仅支持包含 - 或/和 .(中横线和点)两种特殊符号,并且一个集群中主机名不能重复。
Hosts
Linux 系统安装完成后,在 hosts(/etc/hosts) 中应该有 localhost 指向 127.0.0.1,如果没有则手动添加上。
配置每台主机的 hosts(/etc/hosts),添加 host_ip $hostname 到 /etc/hosts 文件中。
CentOS 关闭 selinuxsudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
关闭防火墙(可选)或者放行相应端口 对于刚刚接触 Rancher 的用户,建议在测试环境关闭防火墙,以避免出现网络通信问题。
关闭防火墙
C ...
阅读全文K8S 弃用 docker?
本文永久链接: https://www.xtplayer.cn/kubernetes/k8s-deprecated-docker/
本文转自 rancher 公众号
Kubernetes 在其最新的 Changelog 中宣布,自 Kubernetes 1.20 之后将弃用 Docker 作为容器运行时。这一消息在云原生领域激起了不小的水花,在 Rancher 技术社区里许多小伙伴也对此进行了激烈的讨论。
Kubernetes 为什么选择弃用 Docker 呢?我们需要先简单了解 Dockershim。它是一个桥接服务,帮助 Kubernetes 与 Docker 进行通信,Kubelet 之前使用 dockershim 实现对 Docker 的 CRI 支持(Docker 本身目前尚未实现 CRI)。但时至今日,维护 Dockershim 已成为运维/开发人员的沉重负担。因此 Kubernetes 社区建议大家考虑使用包含 CRI 完整实现(兼容 v1alpha1 或 v1)的可用容器运行时。从而取消了对 Docker 作为容器运行时的支持。
不过大家不必过分担心,近 ...
阅读全文k8s Service 之 Iptables 流转过程
本文永久链接: https://www.xtplayer.cn/kubernetes/svc/k8s-svc-iptables-flow-process/
Service 介绍K8S 中 Service 通过使用 labels 直接指向 Pods,这种设计的灵活性极高,因为创建 Pods 的方式有很多,而 Service 不需要关心 Pods 通过哪种方式创建。同时也避免了 Pod 重建后 Pod IP 自动更换导致服务崩溃的问题。下文将对 Service ClusterIP 和 NodePort 这两种类型做详述。
ClusterIP:集群内部 IP,用于连接后端 Pod 实例的内部 IP,集群中 Pod 可通过 http://ClusterIP:Port 访问到后端 Pod 的 TargetPort 端口上,能够让集群中的 Pod 通过一个 ServiceName 或者 ClusterIP 达到可用性。
NodePort:NodePort 在集群中的主机节点上为 Service 提供一个代理端口,以允许从主机网络上对 Service 进行访问。
Service 之 Ipt ...
阅读全文导入 k8s 集群更新 CA 证书后 Rancher 端的配置操作
本文永久链接: https://www.xtplayer.cn/rancher/import-k8s-cluster-update-ca/
在早期的 rancher 版本中,如果导入的业务 K8S 集群因为证书到期重新生成了证书(包括 kube-ca 证书),这个时候在 Rancher UI shell 终端中执行命令时会报 x509 错误,UI 的一些操作也会报 x509 相关的错误,即使重启集群所有节点也没有效果。
问题分析根据 rancher 的运行逻辑,在第一次导入 rancher 的时候,cluster agent 和 node agent 会上报导入集群的所有配置信息到 rancher ,比如主机 IP,主机配置资源,kube-ca 证书等。
但是有的资源是只上传一次,比如 kube-ca 证书,上传后会写入 CRD 资源中保存,后期 agent 不管是重启还是重建均不会再上传 kube-ca 证书。所以如果是更新了集群 kube-ca 证书,那需要手动去更新 CRD 资源中的旧 kube-ca 证书。
解决步骤Rancher 相关操作Rancher 单容器部署备份 如 ...
阅读全文cattle-global-data/system-library-rancher-monitoring not found
本文永久链接: https://www.xtplayer.cn/rancher/cattle-global-data-system-library-rancher-monitoring-not-found/
rancher2.x 环境下,可能会出现以下错误信息,尤其是在离线环境下更容易出现。
CatalogTemplate.management.cattle.io "cattle-global-data/system-library-rancher-monitoring" not found。
问题分析
rancher2.x 很多附件功能是以 helm chart 部署,比如 monitoring。在 全局|工具|商店设置 可以看到 system-library 这个 repo,这个 repo 中存放了 system 相关的 helm chart。
rancher 在启动时会去 system-library repo 拉取 helm chart 文件,如果无法拉取 chart 文件,CatalogTemplate control 就会提示:
Catal ...
阅读全文rancher 单容器安装恢复
本文永久链接: https://www.xtplayer.cn/rancher/backup-restore/rancher-single-container-restore/
恢复准备以下信息需要提前准备,在备份时替换相应的值。
Placeholder
Example
Description
<RANCHER_CONTAINER_TAG>
v2.0.5
初始安装 Rancher 时使用的 rancher/rancher 镜像版本
<RANCHER_CONTAINER_NAME>
festive_mestorf
Rancher 容器名称
<RANCHER_VERSION>
v2.0.5
创建的 Rancher 数据备份对应的 Rancher 版本
<DATE>
9-27-18
备份创建时间
在终端中输入 docker ps 查询 <RANCHER_CONTAINER_TAG> 和 <RANCHER_CONTAINER_NAME>
集群恢复
停止当前运行的 Rancher 容器.可通 ...
阅读全文