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 容器.可通 ...
阅读全文rancher 单容器安装备份
本文永久链接: https://www.xtplayer.cn/rancher/backup-restore/rancher-single-container-backups/
在完成 Rancher 的单节点安装后,或在升级 Rancher 到新版本之前,需要对 Rancher 进行数据备份。如果在 Rancher 数据损坏或者丢失,或者升级遇到问题时,可以通过最新的备份进行数据恢复。
备份准备以下信息需要提前准备,在备份时替换相应的值。
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
备份创建时间
在终端中 ...
阅读全文rancher rke 集群恢复
如果 rancher 是 HA 架构部署,在 HA 架构下,rancher 的数据是保存在 rke local K8S 集群中。所以在 rancher HA 架构下只需要通过 RKE 恢复 local 集群数据,即可同时恢复 rancher 的数据。
重要提示 此方法直接使用 RKE 进行集群恢复,它适用于 RKE 创建并导入的集群或者 RKE 部署的 local 集群
恢复准备
提示
需要在进行操作的主机上提前安装 RKE、RKE 下载和安装 kubectl。
在开始还原之前,请确保已停止旧集群节点上的所有 kubernetes 服务。
建议创建三个全新节点作为集群恢复的目标节点。有关节点需求,请参阅HA 安装。您也可以使用现有节点,清除 Kubernetes 和 Rancher 配置,这将破坏这些节点上的数据请做好备份,点击了解节点初始化。
准备恢复节点并复制最新快照假设集群中一个或者多个 etcd 节点发生故障,或者整个集群数据丢失,则需要进行 etcd 集群恢复。
添加恢复节点并复制最新快照:
恢复节点可以是全新的节点,或者是之前集群中经过初始化的某个节点;
...
阅读全文rancher 自定义集群恢复
本文永久链接: https://www.xtplayer.cn/rancher/backup-restore/rancher-custom-cluster-restore/
根据 etcd 集群的容错机制,可以从机器重启这样的临时故障中自动恢复。对于永久性故障(比如由于硬件故障导致成员节点无法再连接到集群),它支持最多 (N-1)/2 个成员节点永久断开连接。 如果超过(N-1)/2 个成员节点断开连接,则 etcd 集群因为无法进行仲裁而无法继续正常运行,这个时候所有的 etcd 实例都将变成只读状态。
注意: 以下两种恢复方法要求 K8S 集群没有从 Rancher UI 中删除。
在有自动备份情况下恢复集群(UI 上集群未删除)
提示: 此方法适用于 Rancher v2.2.0 及以后版本创建的自定义 k8s 集群,并且 k8s 集群未从 Rancher UI 删除。注意: 如果有在 Rancher v2.2.0 之前版本创建的 k8s 集群,在升级 Rancher 之后,您必须编辑并更新集群,以便启用自动备份功能。即使在 Rancher v2.2.0 之前创建了备份,也 ...
阅读全文rancher rke 集群备份
本文永久链接: https://www.xtplayer.cn/rancher/backup-restore/rancher-rke-cluster-backups/
如果 rancher 是 HA 架构部署,在 HA 架构下,rancher 的数据是保存在 rke local K8S 集群中。所以在 rancher HA 架构下只需要通过 RKE 备份 local 集群数据,即可同时备份 rancher 的数据。
重要提示 此方法直接使用 RKE 进行集群备份,它适用于 RKE 创建并导入的业务集群或者 RKE 部署的 local 集群
本节介绍在 Rancher HA 下如何备份数据。
Rancher Kubernetes Engine v0.1.7 或更高版本
RKE v0.1.7 以及更高版本才支持 etcd 快照功能
rancher-cluster.yml
需要使用到安装 Rancher 的 RKE 配置文件 rancher-cluster.yml,将此文件需放在与 RKE 二进制文件同级目录中
创建 ETCD 数据快照有两种方案创建 etcd 快照: 定时 ...
阅读全文rancher 自定义集群备份
本文永久链接: https://www.xtplayer.cn/rancher/backup-restore/rancher-custom-cluster-backups/
自 v2.2.0 起可用,仅支持自定义集群
在 Rancher UI 中,可以很容易对自定义集群做 etcd 备份和恢复。备份 etcd 数据并将其保存到 etcd 节点的 /opt/rke/etcd-snapshots/ 目录下或上传到 S3 存储。
提示: Rancher 建议为所有生产集群配置 etcd 自动备份。
注意: 如果您有通过 Rancher v2.2.0 之前版本创建的自定义 Kubernetes 集群,则在升级 Rancher 之后,必须编辑该集群并保存它,以便启用自动备份功能。即使您已经使用 Rancher v2.2.0 之前版本创建了备份,也必须执行此步骤。因为早期的自动备份无法用于通过 UI 备份和还原 etcd。
自动备份默认情况下,Rancher 启动的 Kubernetes 集群将启动自动备份(默认保存在本地磁盘 /opt/rke/etcd-snapshots/ 目录下)。为了 ...
阅读全文rancher 离线安装镜像同步
本文永久链接: https://www.xtplayer.cn/rancher/install/rancher-install-offline-images/
准备文件
使用可以访问 Internet 的主机,访问我们的版本 发布页面,找到需要安装的 Rancher 2.x.x 版本。不要下载 rc 或者 Pre-release 版本,因为它们不适用于稳定的生产环境。
从发行版本的 Assets 部分,下载 rancher-images.txt,此文件包含安装 Rancher 所需的所有镜像的列表。
通过 RKE 生成镜像清单
rke config --system-images -all >> ./rancher-images.txt
对镜像列表进行排序和去重,以去除重复的镜像。
sort -u rancher-images.txt -o rancher-images.txt
复制以下脚本保存为 rancher-save-images.sh,与 rancher-images.txt 放在同一目录层级;
#!/bin/bash# 定义日志workdir=`pwd` ...
阅读全文rancher k8s 对接 ceph 存储
本文永久链接: https://www.xtplayer.cn/kubernetes/storage/k8s-storage-ceph/
本文编写的前提是已有正常工作的 ceph 存储服务,并且 Rancher 集群能正常访问 ceph 存储服务,另外这里我们对接的是 Rancher 持久化存储的存储类。\
随着 UI 翻译的更新,可能有些参数名称与实际名称不相同。
配置 ceph secretRancher 连接 ceph 集群需要 ceph secret,在 ceph 服务器中执行以下命令生成 ceph secret:
ceph auth get-key client.admin |base64
创建 secret 对象将 key 替换为实际 ceph 的 secret,然后 import yaml 到 rancher 集群。
apiVersion: v1kind: Secretmetadata:type: "kubernetes.io/rbd"data: key: QVFEMDJ1VmE0L1pxSEJBQUtTUnFwS3JFVjErR ...
阅读全文k8s 中的 pvc pv sc
本文永久链接: https://www.xtplayer.cn/kubernetes/storage/k8s-pvc-pv-sc/
概述
Persistent Volume Claims( PVC) :应用 Pod 从集群请求存储资源的对象,可以理解为应用 Pod 可以访问和使用多少存储空间的凭证。 通过 PVC,可以指定存储服务器类型(SC),可以指定需要多大的存储空间(PV),可以配置卷的访问模式(单主机读写、多主机只读、多主机读写)。
Persistent Volume(PV):在 Storage 上划分的一块用于存储数据的空间。
Storage Class(SC):对接后端存储服务器(Storage)的驱动(插件),配置 Storage Class 对象时,需要提供对接存储的相关信息,比如存储地址、认证用户名和密码等。
Storage:真实存储数据的服务器,包含服务器地址和认证等信息。
阅读全文