linux authentication token manipulation 错误
本文永久链接: https://www.xtplayer.cn/linux/authentication-token-manipulation/ 问题现象修改密码时出现以下错误: root@alihost-01:~# passwdEnter new UNIX password:Retype new UNIX password:passwd: Authentication token manipulation errorpasswd: password unchangedroot@alihost-01:~# 问题分析与解决 先查看 /etc/shadow 文件的权限,发现都是正常的权限 ls -l /etc/shadow-rw-r----- 1 root shadow 1025 Feb 11 22:11 /etc/shadow 尝试强制修改 /etc/shadow 文件权限,报如下错误 root@alihost-01:~# sudo chmod 0640 /etc/shadowchmod: changing permissions of '/etc/shadow& ...
阅读全文Ingress 常用配置(持续更新)
本文永久链接: https://www.xtplayer.cn/kubernetes/ingress-configuration-demo/ 本文列举一些常用的 ingress 功能配置,并持续更新。 Ingress 配置修改方法通过 Rancher UI 配置依次进入 system 项目|配置映射,然后在 ingress-nginx 命名空间部分找到 nginx-configuration配置映射并编辑 nginx-configuration。 然后在 配置映射 中以键值对形式添加参数,比如: server-tokens=false。 注意: 配置映射设置的参数是作用于全局,如果想局部生效,可通过对应的 注释 去配置相应参数,配置方法文章后面会说明。 通过 kubectl 命令行修改执行以下命令进入配置映射文件的编辑模式 kubectl -n ingress-nginx edit configmaps nginx-configuration 然后在 data 字段中添加相应参数,比如: server-tokens: "false",注意双引号。 ...
阅读全文自定义服务账户(Service Account)
本文永久链接: https://www.xtplayer.cn/kubernetes/custom-serviceaccount/ Service account 主要是为了方便 Pod 中的进程调用 Kubernetes API 而设计的,为服务提供了一种方便的认证机制。但它不提供授权,需要配合 RBAC 来为 Service Account 鉴权。 用户帐户与服务帐户Kubernetes 出于多种原因区分用户帐户和服务帐户的概念: 用户帐户是为人类使用的,服务帐户用于在 Pods 中运行的进程。 用户帐户是全局的,其名称在集群的所有命名空间中必须是唯一的,将来的用户资源将不会被命名空间。服务帐户有命名空间。 通常,集群的用户帐户可能是从公司数据库同步的。在公司数据库中,新用户帐户的创建需要特殊的权限,并且与复杂的业务流程相关联。服务帐户的创建旨在更加轻量级,从而允许集群用户为特定任务(即最小特权原则)创建服务帐户。 用户账户和服务帐户的审核注意事项可能有所不同。 复杂系统的配置可以包括该系统组件的各种服务帐户的定义。因为可以临时创建服务帐户并使用命名空间名称,所以这种配置是可移 ...
阅读全文通过 webhooks 自动更新应用
本文永久链接: https://www.xtplayer.cn/rancher/webhooks/ 当流水线构建完镜像并成功推送到镜像仓库后,根据一些业务需求,可能希望自动去更新相应的应用。目前 rancher 2.x 自身不支持这样的自动触发更新的功能,所以需要一个附加的组件去触发自动更新。 简述本工具基于 https://github.com/adnanh/webhook.git 定制, Dockerfile 地址: https://github.com/cnrancher/docker-webhook.git。 镜像下载地址: registry.cn-shenzhen.aliyuncs.com/rancher/webhook:latest 支持镜像仓库类型: 阿里云镜像仓库: https://cr.console.aliyun.com Docker Hub: http://hub.docker.com 自定义 webhooks(比如 harbor) 支持邮件通知 准备配置文件 建议把 webhooks 作为系统服务运行在 system 项目下。 登录 Ranch ...
阅读全文Rancher server 管理员密码重置
本文永久链接: https://www.xtplayer.cn/rancher/password-reset/ 目前 Rancher 不支持通过邮件或者其他 web 方式找回密码, 如果忘记 admin 密码,则需要通过在 Rancher server 容器中执行命令来重置密码,运行重置命令后将生成随机的字符串密码。 Rancher 单节点安装在 Rancher 运行的主机上,执行以下命令: docker exec -ti <container_id> reset-password 显示结果: New password for default admin user (user-xxxxx):<new_password> Rancher HA 安装在安装有 kubectl 主机上,指定 kubeconfig 配置文件,然后运行以下命令,主机上需要安装 jq 工具。 假设 kubectl 配置文件在当前目录下 kubeconfig=./kube_config_rancher-cluster.ymlkubectl --kubeconfig $kubeconf ...
阅读全文Rancher 单节点安装迁移 HA 安装
本文永久链接: https://www.xtplayer.cn/rancher/backup-restore/single-to-ha/ Rancher 单节点安装 以下步骤创建用于演示迁移的 Rancher 单节点环境,如果您需要迁移正式环境可以跳过此步骤。 执行以下 docker 命令运行单个 Rancher Server 服务 docker run -d -p 8443:443 -p 8880:80 -v /home/rancher/:/var/lib/rancher/rancher/rancher:v2.3.0 等容器初始化完成后,通过节点 IP 访问 Rancher Server UI,设置密码并登录。 创建集群 以下步骤创建用于演示的业务集群,用来验证 Rancher 单节点安装迁移到 HA 后数据是否丢失,如果您需要迁移正式环境可以跳过此步骤。 登录 Rancher UI 后,添加一个自定义集群 授权集群访问地址 设置为启用,FQDN 和证书可以不用填写。 警告:这一步很关键。如果 Rancher 切换到 HA 后,因为地址或者 token 或 ...
阅读全文Rancher-K8S 轮换证书
本文永久链接: https://www.xtplayer.cn/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 分钟。 证书轮换可用于下列服务: ...
阅读全文保存所有集群的 kubeconfig 配置文件
本文永久链接: https://www.xtplayer.cn/rancher/save-all-kubecfg/ 仅具有用户权限的配置文件每一个分配集群资源权限的用户,都可以在集群页找到对应的 kubeconfig 配置文件。此 kubectl 配置文件, 仅可以操作自己有权限的资源。 你如果有很多集群有资源权限,并且你想统一保存 kubeconfig 文件,那么可以通过以下脚本来批量保存。 前提要求需要在运行脚本的主机上安装 jq 工具 centos yum install -y jq ubuntu apt-get install jq -y 脚本使用 生成 API KEY,用于 Rancher UI API 的访问; 切换到全局视图 右上角点击个人头像,接着点击 API & KEY 点击 添加 Key, 描述可以随便填写; 自动失效时间建议选择 1 天,一天后自动删除; 作用范围不用选择,默认全部范围; 点击 创建 后复制 Bearer Token 备用 保存以下内容为任意脚本; #/bin/bashRANCHER_TOKEN=" ...
阅读全文利用 BLKTRACE 和 BTT 分析磁盘 IO 性能
本文永久链接: https://www.xtplayer.cn/linux/disk/blktrace-btt-test-io/ 平时我们在 Linux 上查看磁盘 I/O 性能,可能我们首先就会想到 iostat 命令(包含于 sysstat 软件包中)或者 iotop 命令。iostat 或者 iotop 仅提供了汇总的简单视图,其中很重要的参数就是 await,await 表示单个 I/O 所需的平均时间,但它同时包含了 I/O Scheduler 所消耗的时间和硬件所消耗的时间,所以不能作为硬件性能的指标。如果需要知道更多的细节数据,iostat 将无法满足需求。我们需要更强大的工具来深入了解 I/O 性能问题,我们需要用到 blktrace。 blktrace 提供了对通用块层(block layer)的 I/O 跟踪机制,它能抓取详细的 I/O 请求(request),并发送到用户态空间。 blktrace 主要由 3 部分组成: 内核组件 将内核的 I/O 跟踪信息记录到用户空间的实用程序 分析和查 ...
阅读全文恢复 rkestate 状态文件
本文永久链接: https://www.xtplayer.cn/rancher/backup-restore/restore-rkestate/ Kubernetes 集群状态由 Kubernetes 集群中的集群配置文件 cluster.yml 和组件证书组成。由 RKE 生成,但根据 RKE 版本不同,集群状态的保存方式不同。 在 v0.2.0 之前,RKE 将 Kubernetes 集群状态保存为 secret。更新状态时,RKE 会提取 secret,更新/更改 状态并保存新 secret。 从 v0.2.0 开始,RKE 在集群配置文件 cluster.yml 的同一目录中创建 cluster.rkestate 文件。该 .rkestate 文件包含集群的当前状态,包括 RKE 配置和证书。需要保留此文件以更新集群或通过 RKE 对集群执行任何操作。 状态文件转换如果是通过 rke v0.2.0 之前版本创建的 Kubernetes 集群,那么建议升级 rke 版本到最新版本。 rke v0.2.0 以前的版本,是通过 pki.bundle.tar.gz 来保存组件证书 ...
阅读全文Rancher K8S 集群恢复丢失的 kubeconfig 配置文件
本文永久链接: https://www.xtplayer.cn/rancher/restore-kubecfg/ 分析 Rancher UI 生成的 kubeconfig 文件可以发现,第一个 server 对应的是 Rancher Server 的 url 或者 IP。当 kubectl 访问 K8S API SERVER 的时候,请求是先发送到 Rancher,然后再通过 cluster agent 转发给 K8S API SERVER。 在 Rancher v2.2.2 以前的版本,Rancher UI 生成的 kubecfg 文件中只设置了一个 server。从 Rancher v2.2.2 开始,从 Rancher UI 创建的集群默认开启授权集群访问地址。创建好集群后 Rancher UI 生成的 kubecfg 文件中将显示多个 master 节点 IP 对应的 server。 因此,Rancher v2.2.2 以及之后版本通过 Rancher UI 创建的集群,如果 Rancher Server 无法访问,那么可以通过 kubectl --kubeco ...
阅读全文sysstat 记录主机资源历史使用
本文永久链接: https://www.xtplayer.cn/linux/sysstat/ 很多系统负载过高的时候我们是无法立即获知或者立即解决的,当检测到或者知道历史的高负载状况时,可能需要回放历史监控数据,这时 sar 命令就派上用场了。sar 命令来自 sysstat 工具包,可以记录系统的 CPU 负载、I/O 状况和内存使用记录,便于历史数据的回放。 Ubuntu 系统上,sysstat 的配置文件在 /etc/default/sysstat,sysstat 默认关闭,通过将该文件中的 ENABLED 改为”true”启用;历史日志的存放位置为 /var/log/sysstat Red Hat 系统上,sysstat 的配置文件在 /etc/sysconfig/sysstat 文件,历史日志的存放位置为 /var/log/sa 两种系统上,统计信息都是每 10 分钟记录一次,每天的 23:59 会分割统计文件,这些操作的频率都在 /etc/cron.d/sysstat 文件配置。 sar 命令查看 CPU、内存和磁盘记录 默认情况下,sar 命令 ...
阅读全文