kubeadm部署Kubernetes集群高可用

kubernetes官网

安装环境

ip Docker Version Kubernetes Version 硬件要求
192.168.1.11(master1) 19.03.8 v1.18.1 内存4G,双核CPU
192.168.1.12(master2) 19.03.8 v1.18.1 内存4G,双核CPU
192.168.1.13(master3) 19.03.8 v1.18.1 内存4G,双核CPU
192.168.1.100(VIP)

Kubernetes使用kube-ovn网络部署集群

kubernetes官网

安装环境

不支持centos8的系统

ip 服务 硬件要求
192.168.1.11(node1) Docker(已安装)、kubernetes 内存4G,双核CPU
192.168.1.12(node2) Docker(已安装)、kubernetes 内存4G,双核CPU
192.168.1.13(node3) Docker(已安装)、kubernetes 内存4G,双核CPU

Kubernetes集群搭建

kubernetes官网

安装环境

不支持centos8的系统(现在已经支持了)

ip 服务 硬件要求
192.168.1.11(node1) Docker(已安装)、kubernetes 内存4G,双核CPU
192.168.1.12(node2) Docker(已安装)、kubernetes 内存4G,双核CPU
192.168.1.13(node3) Docker(已安装)、kubernetes 内存4G,双核CPU

Loki的LogQL查询语法

作为云原生的轻量级日志系统,Loki 是 Grafana 团队参考 Prometheus 的标签思想来做的,只对标签进行索引。这也是日志查询中最重要的一点。

Loki

MySQL使用insert方式备份表

前两天公司开发要求测试环境数据库删除一条数据,无论是生成还是测试环境删除之前都要做备份,但是考虑到只是单个表,使用 mysqldump 有点大可不必,所以采用了 insert 来复制表。 首先创建一个与旧表相同结构的空表,包括主键和自增等(可以使用 describe table_name 查看表结构) create table new_table like old_table; 将旧表的数据...

生产环境非容器CICD+回滚

本文将完成 GitLab+Jenkins+Tomcat 的 CI/CD,并通过 Jenkins 的参数化构建完成 jenkins 的回滚,本文采用的回滚方式,是我在 git tag 和 脚本 两种方案之间选择的脚本回滚,因为考虑到 tag 方式还需要额外维护 tag 外,每次回滚需要重新构建;而脚本回滚的方式,每次构建会将构建结果做一个备份,回滚时直接使用备份即可,无需重复构建。

生产环境中Loki的优化

本文将总结我在生产环境中使用 PLG 日志系统遇到优化配置 Loki 中保留日志时长当日志传送到 Loki,由 Loki 来存储日志,我们也不可能将日志永久的存储在 Loki 服务器,按照实际需求做保留即可 在 Loki 配置文件中,做如下配置 limits_config: reject_old_samples: true # 是否拒绝旧样本 reject_old_samples...
Loki

轻量级日志收集系统PLG

PLG= Promtail+Loki+Grafana Promtail: 代理,负责收集日志并将其发送给 loki Loki: 日志记录引擎,负责存储日志和处理查询 Grafana: UI 界面 PLG 的官方介绍可参考:https://grafana.com/docs/loki/latest/overview/ Loki 和常用的 EFK(Elasticsearch + Filebea...
Loki

elasticsearch只保留当天的数据

Elasticsearch 是 ELK 日志架构中的搜索工具,现在需求是不需要保存那么长时间,只需要保留当天的数据,本文将要使用 ES 官方推荐的 elasticsearch-curator 工具来达到需求。 安装 curatorpip install elasticsearch-curator 安装后,便可以在命令行中直接使用,使用 --help 查看一下使用方法 # 默认读取的是...

godaddy ssl证书绑定阿里云SLB

Godaddy证书制作godaddy购买的证书中,下载完只有 .pem 和 .crt(2个) 3个文件,而绑定阿里云 SLB ,还需要 key 文件,通过 Godaddy 的证书安装得知,CSR请求文件和 KEY文件需要自己生成。 生成CSR和KEY文件随便找一台服务器即可(虚拟机也行),安装openssl。 # key私钥文件 openssl genrsa -out vdollar.onl...

kubectl命令小技巧

使用 kubectl 命令时,最烦人的就是频繁的切换命名空间了,查看什么资源都得加命名空间,每次敲命令在习惯也会很烦。今天在网上看到一篇文章,很有用,可以记住上一次使用 kubectl 时操作的命名空间。

maven设置代理

在测试一个 java demo 项目时,需要用到 maven 来编译,因为公司网络是需要走代理访问外网的,在我不知道 maven 需要单独配置代理的情况下,一直使用 mvn package 进行打包编译,一直报错,如下:

Kubernetes节点不login拉取私库镜像

在实际的生产环境中遇到了这样的问题:集群中有大量 k8s 节点,在部署应用时,需要拉取私有仓库(harbor/registry)的私有项目镜像,也就是节点必须 docker login 之后才可以正常拉取到镜像。但是也不可能每个节点都这样去做,或者写脚本把用户密码明文暴露,显然是不合适的

需要将镜像仓库的认证凭据(域名/ip,用户名,密码)保存在 k8s 中

Kubernetes---kubeadm版本升级

Kubernetes 的版本更新迭代算是频繁的了,每个三个月发布一个小版本。为了使集群中一直跟随着版本前进,如果一直不更新,会导致新功能无法使用,落后新版本太多版本,不方便升级。

升级策略

  • 始终保持最新
  • 每半年升级一次,资源会落后社区1~2个小版本(推荐)
  • 一年升级一次,或者更长,落后版本太多

Kubernetes---etcd数据库备份恢复

Kubernetes 无论是二进制搭建还是 kubeadm 搭建的集群,都依赖于 etcd 数据库来进行存储集群数据,安全起见,一定要备份。一旦集群宕机,就会显得备份得多重要。

kubeadm etcd 备份恢复

kubeadm 部署的集群中的 etcd 是以静态容器的方式运行的,静态容器的配置文件存放目录是 /etc/kubernetes/manifests/,且默认 etcd 是单实例,并没有高可用。其实还是建议即使 kubeadm 部署时,也可以使用外部的 二进制部署的高可用 etcd 集群。

Kubernetes网络策略

网络策略(Network Policy),用于限制 Pod 出入流量,提供 Pod 级别和 Namespace 级别网络访问控制。

已知 flannel 目前并不支持网络策略,即使创建了也并不会应用,其它组件在使用网络策略时还请自行了解以下是否支持。

应用场景

  • 应用程序(Pod)间的访问控制。例如微服务 A ,允许访问微服务 B ,微服务 C 不能访问微服务 A
  • 开发环境命名空间不能访问测试环境命名空间 Pod
  • 当 Pod 暴露到外部时,需要做 Pod 白名单
  • 多租户网络环境隔离(使用项目较多)

Kubernetes---RBAC(基于角色的访问控制)

RBAC(Role-Based Access Control,基于角色的访问控制),允许通过 Kubernetes API 动态配置策略。 概念理解角色(权限的集合) Role:授权特定命名空间的访问权限 ClusterRole:授权所有命名空间的访问权限(集群角色) 角色绑定 RoleBinding:将角色(Role)绑定到主体(即subject) ClusterRoleBindin...

Kubernetes安全框架

相信大家在使用 kubeadm init 时,会发现在 /etc/kubernetes/pki 目录下生成一大堆证书文件;还有一些 k8s 插件在部署时,会创建 RBAC,这些都是为了 kubernetes 的安全而产生的。

  • K8S 安全控制框架主要有 3 个阶段进行控制,每一个阶段都支持插件方式,通过 API Server 配置来启用插件。
  1. Authentication(鉴权):鉴定访问集群的身份
  2. Authorization(授权):在确认身份的基础上,给定符合身份的权限
  3. Admission Control(准入控制):安检




正在载入...
PoweredHexo
HostedAliyun
DNSAliyun
ThemeVolantis
UV
PV
BY-NC-SA 4.0