CentOS7 编译安装 Redis-6.2.6 并启用TLS
Write by lyc at 2022-4-11Redis TLSredis6.2 使用 TLS 的部署(三种高可用模式)
CentOS7 编译安装 Redis-6.2.6 并启用TLS1.编译安装 Redis-6.2.61234567891011121314151617181920212223242526# 下载编译安装包cd /usr/local/srcwget https://download.redis.io/releases/redis-6.2.6.tar.gztar xvf redis-6.2.6.tar.gz && cd redis-6.2.6# 编译安装,启用 TLSmake BUILD_TLS=yes MALLOC=libcmake PREFIX=/usr/local/redis-6.2.6 install# 创建软连接ln -s /usr/local/redis-6.2.6 /usr/local/redis# 配置内核参数echo "vm.overcommit_memory = 1" >>/etc/sysct ...
ingress-nginx 性能调优
Write by lyc at 2022-4-8ingress-nginx 官网Nginx Ingress 高并发实践k8s的 Nginx Ingress 调优
ingress-nginx 性能调优1.ingress-nginx 内核参数调优123456789101112131415161718192021....# Source: ingress-nginx/templates/controller-deployment.yaml.... initContainers: - name: setsysctl image: busybox securityContext: privileged: true command: - sh - -c - | sysctl -w net.core.somaxconn=65535 sysctl -w net.ipv4.ip_local_port_range="1024 655 ...
ingress-nginx 日志配置
Write by lyc at 2022-4-1kubernetes ingress更改日志格式K8s Ingress的日志切割k8s nginx 的日志切割
ingress-nginx 日志配置Ingress Nginx 默认访问日志都输出到 /var/log/nginx/access.log 文件中,但是对于一般的生产环境来说,不可能把所有日志都输到一个日志文件中,一般情况都是根据域名分别输出到各个文件中。
默认的 ingress-nginx-controller 日志输出:ingress-nginx 默认日志重定向输出到:
/var/log/nginx/access.log -> /dev/stdout 标准输出
/var/log/nginx/error.log is -> /dev/stderr 标准错误输出
那么所有日志最终被保存进容器所在宿主机下的 /var/log/containers/xxx_CONTAINER_ID.log。这样很容易出现“胖容器”。
设计思路:
使用 NFS 持久化 ingress-nginx-controller 日 ...
Helm Chart模板:(四)命名模板
Write by lyc at 2022-3-28Helm 命名模板
Helm Chart模板:(四)命名模板命名模板:_helpers.tpl命名模板类似于开发语言中的函数,指一段可以直接被另一段程序或代码引用的程序或代码。在编写 chart 时,可以将一些重复使用的内容写在命名模板文件中供公共使用,这样可减少重复编写程序段和简化代码结构。
在 templates 目录中默认下划线开头的文件为公共模板 _helpers.tpl。
define 定义命名模板名称,模板名称是全局的,如果您想声明两个相同名称的模板,哪个最后加载就使用哪个。
template 或 include ,引入命名模板。include 可以配合使用管道。
templatetemplate 指令是将一个模板包含在另一个模板中的方法。但是,template 函数不能用于 Go 模板管道。
123456789101112# templates/_helpers.tpl{{/* 我是注释 */}}{{- define "fullname" ...
Helm Chart模板:(三)流控制
Write by lyc at 2022-3-28Helm 流控制
Helm Chart模板:(三)流控制1.控制空格--dry-run 渲染结果会发现有多余的空行,这是因为当模板引擎运行时,它移除了 {{`` 和 ``}} 里面的内容,但是留下的空白完全保持原样。
我们可以使用横杠 - 消除空行:
{{-`` (包括添加的横杠和空格)表示向左删除空白
* ``-}} 表示右边的空格应该被去掉。 一定注意空格就是换行。
123456789101112# 去除左边空行{{- if .Values.resources }} resources: {{ toYaml .Values.resources | indent 10 }}{{- end }}# 去除右边空行{{/* 标签模板 */}}{{- define &qu ...
Helm Chart模板:(二)模板函数和流水线
Write by lyc at 2022-3-28Helm 模板函数和流水线Helm 模板函数列表
Helm Chart模板:(二)模板函数和流水线模板函数的语法是:
1functionName arg1 arg2...
模板函数:quote可以通过调用模板指令中的 quote 函数把 .Values 对象中的字符串属性用引号引起来,然后放到模板中。
12345678apiVersion: v1kind: ConfigMapmetadata: name: {{ .Release.Name }}-configmapdata: myvalue: "Hello World" drink: {{ quote .Values.favorite.drink }} food: {{ quote .Values.favorite.food }}
模板函数:upper 和 管道符 |管道符 是将一系列的模板语言紧凑地将多个流式处理结果合并的工具。换句话说 ...
Helm Chart模板:(一)内置对象
Write by lyc at 2022-3-28Helm 内置对象
Helm Chart模板:(一)内置对象Release 对象Release 对象:对象描述了版本发布本身。包含了以下对象
内置
描述
Release.Name
release 名称
Release.Time
release 的时间
Release.Namespace
release 的命名空间
Release.Service
release 服务的名称
Release.Revision
release 的修订版本号,从1开始累加
Release.IsInstall
版如果当前操作是安装的话,该值将被设置为true
Release.IsUpgrade
如果当前操作是升级或回滚的话,该值将被设置为true
Values 对象Values 对象:是从 values.yaml 文件和用户 --set 命令行参数传入值或 -f 提供的文件传进模板的。默认为空。
Chart 对象Chart 对象:该对象提供了传递值到chart的方法。Chart.yaml 文件内容。Chart.yaml ...
npm install 报错 Cannot download "https://github.com/sass/node-sass/releases/download/v4.14.1/linux-x64-72_binding.node"
Write by lyc at 2022-3-24SASS用法指南已解决Cannot download “https://github.com/sass/node-sass/releases/download/v4.12.0/win32-x64-83_binding
npm install 报错 Cannot download "https://github.com/sass/node-sass/releases/download/v4.14.1/linux-x64-72_binding.node"由于国内网络问题,npm install 无法下载到 node-sass,报错详细信息:
1234567891011121314151617> node-sass@4.14.1 install /home/jenkins/agent/workspace/workspace/XXX/node_modules/node-sass> node scripts/install.jsDownloading binary from https://github.c ...
Kubernetes RBAC权限控制
Write by lyc at 2022-3-17Kubernetes RBAC一文读懂k8s RBAC权限控制kubernetes实战篇之Dashboard的访问权限限制
Kubernetes RBAC权限控制1.K8S RBACRBAC (Role-Based Access Control)是基于角色的访问控制。
K8S RBAC 框架主要由下面3个阶段进行控制,每一个阶段都支持插件方式,通过 API Server 配置来启用插件。
Authentication 鉴权
Authorization 授权
Admission Control 准入控制
上面流程中 Authentication 鉴权插件将返回通过鉴权的主体;然后将其交给 Authorization 授权插件来检查主体是否有权限执行某个操作。
三种客户端 “主体” 类型:
User 用户
Group 用户组
ServerAccount K8S 资源对象 SA
三种 Authentication 鉴权方式:客户端想要访问 K8S 集群 apiserver,可选三种客户端身份鉴权认证:
HTTPS 证书认证 ...
K8S 应用部署利器 Helm
Helm HOMEHelm GitHub
Helm 介绍Helm 是什么?Helm 是 Kubernetes 的包管理器,就像 Linux 下的包管理器,如 yum/apt 等,可以很方便的将之前打包好的 .yaml 文件部署到 Kubernetes 上。
而 helm 是一个命令行客户端工具,主要用于 Kubernetes 应用 chart 的创建、打包、发布和管理。
为什么需要 Helm?由于 Kubernetes 缺少对发布的应用版本管理和控制,使得部署的应用维护和更新等面临诸多的挑战,主要面临以下问题:
如何将这些服务作为一个整体管理?
这些资源文件如何高效复用?
不支持应用级别的版本管理
Helm 解决了什么问题?我们知道 K8S 是以单个资源对象 .yaml 为管理单位,而一个应用通常涉及多个资源对象,K8S 在应用管理方面有先天性的缺失。因此 Helm 解决的就是 K8S 应用管理层面的能力,能够帮助我们部署和管理更加复杂的应用到 K8S 中。
Helm 三大概念
Chart 代表着 Helm 包。它包含在 Kubernetes 集群内部运行应用程序,工具或服务所 ...