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(准入控制):安检

Kubernetes---StatefulSet

在前面的学习中,发现做的例子都是 Deployment ,且大部分使用 web 应用去做示例,为什么不用 mysql 类似数据库来做示例呢。

在 LNMP 架构中,应该了解过动静分离,也就是动态数据和静态数据,是以是否需要去访问数据库去进行读写数据来区分的。

Kubernetes 同样也区分了有状态应用和无状态应用,之前常用的 Deployment 就是为无状态应用而使用的。本文中提到的 StatefulSet 就是为有状态应用使用的。





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