K3s 安装 - 机器提前准备
手动加载 CentOS7 box 文件配置 Vagrantfile123456789101112131415161718192021222324252627Vagrant.configure("2") do |config| (1..3).each do |i| config.vm.define "k3s-node#{i}" do |node| # 设置虚拟机的Box node.vm.box = "centos/7" # 设置虚拟机的主机名 node.vm.hostname="k3s-node#{i}" # 设置虚拟机的IP node.vm.network "private_network", ip: "192.168.56.#{99+i}", netma...
K3s 卸载
卸载 K3sServer 节点执行1sh /usr/local/bin/k3s-uninstall.sh Agent 节点执行1sh /usr/local/bin/k3s-agent-uninstall.sh 清除配置1rm -rf $HOME/.kube 如果是外部数据库,卸载完需要记得清除 database 的数据 MySQL:清空 K3s 创建的 kine 表
K3s 高可用安装
安装版本:K3s (v1.21.7+k3s1) 参考站内 K3s 实践高可用架构图。 官方文档参考顺序(官方文档记录的顺序有点乱)1234560. 查看对应版本: https://www.suse.com/suse-rancher/support-matrix/all-supported-versions/rancher-v2-6-3/1. 基础架构: https://rancher.com/docs/rancher/v2.6/en/installation/resources/k8s-tutorials/infrastructure-tutorials/infra-for-ha-with-external-db/2. 负载均衡: https://rancher.com/docs/rancher/v2.6/en/installation/resources/k8s-tutorials/infrastructure-tutorials/nginx/3. 部署 K3s: https://rancher.com/docs/rancher/v2.6/en/installation/r...
关于 K3s 的证书轮换策略
前言官方文档 K3s 启动时会自动生成 CA 证书,CA 证书的有效期为 10 年。其他证书有效期为 1 年,如果证书已经过期或剩余的时间不足 90 天,则在 K3s 重启时轮换证书。K3s 服务只是一个进程,K3s 服务重启不会影响正在运行的 Pod,也不会影响你的业务。 证书轮换方式(3 种任选其一)使用 crontab + shell 脚本 方式实现证书轮换编写脚本 upgradeCert.sh,并放在主节点服务器上。 查看主节点位置: 1kubectl get nodes -l 'node-role.kubernetes.io/control-plane'|awk '{if (NR>1){print $1}}' Server 节点脚本 1234567891011121314151617181920#!/bin/bash# 目标目录DIR="/var/lib/rancher/k3s/server/tls"now=$(date +%s)# 递归查找 .crt 文件for...
Rancher 导入集群
导入集群 进入之后选择导入已有集群,随后进入此页面,点击创建 对于自签证书选择第二项,复制,然后在 K3s server 节点执行 问题error: no objects passed to apply 这里的问题主要是无法连接到部署 Rancher 的主机,无法获取 yaml 文件导致的。可以将 yaml 文件直接下载到 K3s server,再手动执行 kubectl apply -f {xxx}.yaml (针对配置了 --tls-san 参数 - 自签证书)可能会执行失败,提示域名 rancher.k3s.cn 不识别(前面的证书域名以及对应 IP) 更新资源的字段 123456789101112131415161718192021222324252627282930313233343536# because the cert was made by myself, so i need configured the hosts, otherwise it does not know my cert's domain name, un...
利用 Fabric8 结合 Git Hook 动态配置 K8s 资源
背景 在多分支并行开发的集群下,新建分支以及删除分支都需要开发人员手动维护Istio/K8s的资源对象 目的 结合git hook -》 sync程序 -》 kubernetes API 流程,自动维护k8s以及istio资源对象,减少成本,提高开发效率 技术栈GitLab Api 使用GitLab Api,获取项目分支信息 123456 <!-- https://mvnrepository.com/artifact/org.gitlab/java-gitlab-api --><dependency> <groupId>org.gitlab</groupId> <artifactId>java-gitlab-api</artifactId> <version>${gitlab.version}</version></dependency> gitlab api认证 123456789101112131415161...
K8s CRD 开发学习 - client_go 连接 K8s(Minikube)
client-go 远程连接 K8s(Minikube)复制配置文件到本地 先将 minikube 拷贝到本地(或者只拷贝 .kube/config 需要的文件) 1cp -r /home/docker_user/.minikube /root/ 拷贝 .kube 文件夹 1cp -r /home/docker_user/.kube /root/ 添加 SSH 端口转发本地肯定是访问不了的,所以需要在本地试验环境添加远程主机的端口转发。 Windows 端口转发,打开 Windows 的 cmd,输入命令: 1234# 表示在本地启动 18443 端口,与远程主机 root@192.168.56.101 建立连接,端口转发到远程主机 192.168.49.2:8443 上去,执行完窗口会 hold 住# 192.168.49.2 是 k8s 节点 ip,使用 `minikube node list` 查看ssh -L 18443:192.168.49.2:8443 -N -f docker_user@192.168.56.101 此时可以在本地开发环境通过 c...
K8s CRD 开发学习 - 安装 K8s(Minikube)
安装 Docker使用官方安装脚本自动安装 Docker12curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyunsystemctl enable docker 配置镜像加速12345678mkdir -p /etc/dockertee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["https://0vlzmqf0.mirror.aliyuncs.com"]}EOFsystemctl daemon-reloadsystemctl restart docker 安装 Minikube12curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64install minikube-linux-amd64 /usr/local/bin/mi...
关于 Rancher 的证书轮换策略
参考:https://docs.rancher.cn/docs/rancher2/cluster-admin/certificate-rotation/_index/#%E7%8B%AC%E7%AB%8B%E5%AE%B9%E5%99%A8-rancher-server-%E8%AF%81%E4%B9%A6%E6%9B%B4%E6%96%B0 集群部署略,参考官网 Docker Rancher Server 证书更新证书未过期证书未过期时,Rancher Server 可以正常运行。升级到 Rancher v2.0.14+、v2.1.9+、v2.2.2+ 后会自动检查证书有效期,如果发现证书即将过期,将会自动生成新的证书。所以独立容器运行的 Rancher Server,只需在证书过期前把 Rancher 版本升级到支持自动更新 SSL 证书的版本即可,无需做其他操作。 证书已过期如果证书已过期,那么 Rancher Server 无法正常运行。即使升级到 Rancher v2.0.14+、v2.1.9+、v2.2.2+ 也可能会提示证书错误。如果出现这种情况,可通过以下操作进行...
Rancher 的角色权限分配实践
Rancher 分为 3 种角色,各自适用范围也不同 全局 集群 项目 项目下又包括了多个 namespace 先使用管理员登录创建 1 个可以管理全局的账户和角色的用户(全局管理员账户) 注:此用户仅用来管理用户和角色,admin 权限太大,之后不再使用它进行登录 用户名:UserManager 拥有角色: Manage Roles Manage Users 退出管理员,然后使用全局管理员账户创建一个集群管理员账户(集群管理员账户)全局权限:Standard User 用户名:ClusterManager 用 ClusterManager 身份登录并进行创建集群(略) 创建集群或项目时,Rancher 会自动将创建者分配为所有者。分配了所有者角色的用户可以在集群或项目中给其他用户分配角色。 然后使用 UserManager 为各集群创建用户一个 ClusterManager 账户下可以创建多个集群,例如 release/production。 1. 项目管理员 ProjectsAdmin 全局权限:Standard User 创建和管理项目,查看监控等,...
