单节点+权威证书+四层负载均衡安装 Rancher
本文永久链接: https://www.xtplayer.cn/rancher/install/single-node-install-authority-ssl-l4/ 权威 ssl 证书与默认自签名 ssl 证书或者自己生成的自签名证书有所不同,在权威 ssl 证书模式下,agent 通过 IP 访问无法通过证书的校验。因为 ssl 证书在生成的时候会与 IP 或者域名有一个绑定关系,而权威证书生成时候是基于申请证书时使用的域名,所以当用其他 IP 访问时候则无法验证通过。默认自签名 ssl 证书或者自己生成的自签名证书,在创建的时候有传递相应的 IP,所以自签名可以正常认证。 要使用权威证书安装 rancher,需要使用申请 ssl 证书时用的域名来访问 rancher。 在线安装docker_data_dir=xxxx # 定义绝对路径mkdir -p ${docker_data_dir}/data # rancher 数据目录mkdir -p ${docker_data_dir}/auditlog # 审计日志目录mkdir -p ...
阅读全文单节点+权威证书+七层负载均衡安装 Rancher
本文永久链接: https://www.xtplayer.cn/rancher/install/single-node-install-authority-ssl-l7/ 权威 ssl 证书与默认自签名 ssl 证书或者自己生成的自签名证书有所不同,在权威 ssl 证书模式下,agent 通过 IP 访问无法通过证书的校验。因为 ssl 证书在生成的时候会与 IP 或者域名有一个绑定关系,而权威证书生成时候是基于申请证书时使用的域名,所以当用其他 IP 访问时候则无法验证通过。默认自签名 ssl 证书或者自己生成的自签名证书,在创建的时候有传递相应的 IP,所以自签名可以正常认证。 要使用权威证书安装 rancher,需要使用申请 ssl 证书时用的域名来访问 rancher。 在线安装docker_data_dir=xxxx # 定义绝对路径mkdir -p ${docker_data_dir}/data # rancher 数据目录mkdir -p ${docker_data_dir}/auditlog # 审计日志目录mkdir -p ...
阅读全文单节点+权威证书安装 Rancher
本文永久链接: https://www.xtplayer.cn/rancher/install/single-node-install-authority-ssl/ 权威 ssl 证书与默认自签名 ssl 证书或者自己生成的自签名证书有所不同,在权威 ssl 证书模式下,agent 通过 IP 访问无法通过证书的校验。因为 ssl 证书在生成的时候会与 IP 或者域名有一个绑定关系,而权威证书生成时候是基于申请证书时使用的域名,所以当用其他 IP 访问时候则无法验证通过。默认自签名 ssl 证书或者自己生成的自签名证书,在创建的时候有传递相应的 IP,所以自签名可以正常认证。 要使用权威证书安装 rancher,需要使用申请 ssl 证书时用的域名来访问 rancher。 在线安装docker_data_dir=xxxx # 定义绝对路径mkdir -p ${docker_data_dir}/data # rancher 数据目录mkdir -p ${docker_data_dir}/auditlog # 审计日志目录mkdir -p $& ...
阅读全文单节点+自定义自签证书+四层负载均衡安装 Rancher
本文永久链接: https://www.xtplayer.cn/rancher/install/single-node-install-custom-ssl-l4/ 在线安装Rancher 安装可以使用自己生成的自签名证书,如果没有自签名证书,可通过脚本一键生成自签名 ssl 证书。 docker_data_dir=xxxx # 定义绝对路径mkdir -p ${docker_data_dir}/data # rancher 数据目录mkdir -p ${docker_data_dir}/auditlog # 审计日志目录mkdir -p ${docker_data_dir}/ssl # 自定义 CA 证书目录docker run -d --restart=unless-stopped \-p 10080:80 -p 10443:443 \ ①-v ${docker_data_dir}/data:/var/lib/rancher \ ②# 审计日志配置 ③-e AUDIT_LEVEL=3 \-v $ ...
阅读全文单节点+自定义自签证书+七层负载均衡安装 Rancher
本文永久链接: https://www.xtplayer.cn/rancher/install/single-node-install-custom-ssl-l7/ 单节点在线安装Rancher 安装可以使用自己生成的自签名证书,如果没有自签名证书,可通过脚本一键生成自签名 ssl 证书。 docker_data_dir=xxxx # 定义绝对路径mkdir -p ${docker_data_dir}/data # rancher 数据目录mkdir -p ${docker_data_dir}/auditlog # 审计日志目录mkdir -p ${docker_data_dir}/ssl # 自定义 CA 证书目录docker run -d --restart=unless-stopped \-p 10080:80 \ ①-v ${docker_data_dir}/data:/var/lib/rancher \ ②# 审计日志配置 ③-e AUDIT_LEVEL=3 \-v ${docker_ ...
阅读全文单节点+自定义自签证书安装 Rancher
本文永久链接: https://www.xtplayer.cn/rancher/install/single-node-install-custom-ssl/ 在线安装Rancher 安装也可以使用自己生成的自签名证书,如果没有自签名证书,可通过脚本一键生成自签名 ssl 证书。 docker_data_dir=xxxx # 定义绝对路径mkdir -p ${docker_data_dir}/data # rancher 数据目录mkdir -p ${docker_data_dir}/auditlog # 审计日志目录mkdir -p ${docker_data_dir}/ssl # 自定义 CA 证书目录docker run -d --restart=unless-stopped \-p 80:80 -p 443:443 \ ①-v ${docker_data_dir}/data:/var/lib/rancher \ ②# 审计日志配置 ③-e AUDIT_LEVEL=3 \-v ${dock ...
阅读全文单节点+默认自签证书+四层负载均衡安装 Rancher
默认情况下,Rancher 会自动生成一个用于加密的自签名证书。可以直接通过运行 Docker 命令来安装 Rancher,而不需要任何其他参数。 在线安装docker_data_dir=xxxx # 定义绝对路径mkdir -p ${docker_data_dir}/data # rancher 数据目录mkdir -p ${docker_data_dir}/auditlog # 审计日志目录mkdir -p ${docker_data_dir}/ssl # 自定义 CA 证书目录docker run -d --restart=unless-stopped \-p 10080:80 -p 10443:443 \ ①-v ${docker_data_dir}/data:/var/lib/rancher \ ②# 审计日志配置 ③-e AUDIT_LEVEL=3 \-v ${docker_data_dir}/auditlog:/var/log/auditlog \# 以下两行配置自定义 C ...
阅读全文单节点+默认自签证书安装 Rancher
本文永久链接: https://www.xtplayer.cn/rancher/install/single-node-install-default-ssl/ 默认情况下,Rancher 会自动生成一个用于加密的自签名证书。直接通过运行 Docker 命令来安装 Rancher,而不需要任何其他参数。 单节点在线安装docker_data_dir=xxxx # 定义绝对路径mkdir -p ${docker_data_dir}/data # rancher 数据目录mkdir -p ${docker_data_dir}/auditlog # 审计日志目录mkdir -p ${docker_data_dir}/ssl # 自定义 CA 证书目录docker run -d --restart=unless-stopped \-p 80:80 -p 443:443 \ ①-v ${docker_data_dir}/data:/var/lib/rancher \ ②# 审计日志配置 ③-e AUDIT_LEVE ...
阅读全文图形化的方式了解 Kubernetes
本文永久链接: https://www.xtplayer.cn/kubernetes/learn-about-kubernetes-graphically/ 容器 在我们尝试了解 Kubernetes 之前,让我们花一点时间来澄清容器是什么,以及它们为什么如此受欢迎。毕竟,在不知道容器是什么的情况下谈论容器编排器(Kubernetes)是没有意义的。 “容器” 是一个用来存放你放入的所有物品的容器。 像应用程序代码,依赖库以及它的依赖关系一直到内核。这里的关键概念是隔离。将所有内容与其余内容隔离开,以便你更好地控制它们。容器提供三种隔离类型: 工作区隔离(流程、网络) 资源隔离(CPU、内存) 文件系统隔离(联合文件系统) 考虑一下像 VM 一样的容器。它们精简,快速(启动)且体积小。而且,所有这些都没有构建起来。取而代之的是,他们使用 Linux 系统中存在的结构(例如:cgroups、namespaces)在其上构建了一个不错的抽象。 现在我们知道什么是容器了,很容易理解为什么它们很受欢迎。不仅可以分发应用程序的二进制/代码,还可以以实用的方式交付运行应用程序所 ...
阅读全文使用 kind 快速创建本地集群
本文永久链接: https://www.xtplayer.cn/kubernetes/use-kind/ 简 介kind 是另一个 Kubernetes SIG 项目,但它与 minikube 有很大区别。它可以将集群迁移到 Docker 容器中,这与生成虚拟机相比,启动速度大大加快。简而言之,kind 是一个使用 Docker 容器节点运行本地 Kubernetes 集群的工具(CLI)。 前期准备想要顺利完成本教程,你需要在本地系统中准备好以下程序: Go 需要运行的 Docker 服务 安 装 使用以下命令下载和安装 kind 二进制文件: GO111MODULE=”on” go get sigs.k8s.io/kind@v0.8.1 确保 kind 二进制文件是存在 > kind versionkind v0.8.1 go1.14.2 darwin/amd64 现在,我们应该能够使用 kind CLI 来启动一个 Kubernetes 集群: Usage: kind [command]Available Commands: build Bu ...
阅读全文ipv6/conf/eth0/accept_dad: no such file or directory
本文永久链接: https://www.xtplayer.cn/kubernetes/pod-not-run/ 问题现象在早期 rancher kubernetes 版本中,在新集群创建应用后可能会出现大批量的 Pod 处于 ContainerCreating 状态。如图: 通过 kubectl describe 查看应用的事件,提示无法获取 IP 地址: 查看 kubelet 服务日志,可以看到以下的错误信息: E0824 08:04:39.776000 20094 cni.go:331] Error adding kube-system_coredns-59db856b69-b2jck/ead1d2646611bcee3bdb9e0900a53139af282232f6354b156b92a91bdcc3cfee to network flannel/cbr0: open /proc/sys/net/ipv6/conf/eth0/accept_dad: no such file or directoryE0824 08:04:39.809938 20094 ...
阅读全文Docker Cgroup 版本对应
centos8/redhat8、Fedora 31 或者 Linux 内核 4.5 以上,cgroup 默认为 v2 版本,而当前 docker 只支持 以上,cgroup v1。 docker: Error response from daemon: cgroups: cannot found cgroup mount destination: unknown.
阅读全文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 跟踪信息记录到用户空间的实用程序 分析和查 ...
阅读全文