Run Docker without Docker Desktop on macOS

由于 Docker Desktop 修改了授权条款,不再对企业用户免费,所以我们需要啊寻求一种替代品。到目前为止 Minikube 已经成为 Docker Desktop 最简单的替代品。 Minikube 用于在本地环境中运行 Kubernetes 集群,但它也运行了一个可用于运行容器的 Docker 守护进程。如果你不需要使用 Kubernetes ,那么你可以通过 minikube pause 暂停 Kubernetes 相关镜像,从而解决系统资源。 在 macOS 上,Minikube 运行在很多虚拟化技术上,由于ISSUE-6296原因,本例使用 Virtualbox 方式(你需要先安装 Virtualbox)。 卸载 Docker Desktop for macOS 如果你之前安装过 Docker Desktop,那么你需要先卸载它 在 Docker Desktop 菜单中选择 Troubleshoot 并且选择 Uninstall. 删除 /Applications/Docker.app 安装 Docker CLI 因为卸载 Docker Desktop 后将自动卸载 Docker CLI,所以你需要单独安装 $ brew install docker $ brew install docker-compose 提示: 在执行 brew install docker-compose 命令的时候可能得到如下的失败信息,这是因为依赖包下载失败。你可以使用 brew install gdbm 单独下载依赖包,就避免了找不到依赖版本的错误。

Read more

Kubectl Commands

常用 Kubectl 命令 创建命名空间 新建一个名为 nc-namespace.yaml 的 YAML 文件 apiVersion: v1 kind: Namespace metadata: name: nc-namespace 然后运行以下命令创建命名空间 $ kubectl create -f nc-namespace.yaml namespace/nc-namespace created 创建命名空间资源配额文件 新建一个名为 nc-quota.yaml 的 YAML 文件 apiVersion: v1 kind: ResourceQuota metadata: name: nc-quota namespace: nc-namespace spec: hard: pods: "10" requests.cpu: "2" requests.memory: 2Gi limits.cpu: "4" limits.memory: 4Gi 然后运行以下命令创建资源配额 $ kubectl create -f nc-quota.yaml resourcequota/nc-quota created 创建 PV 卷和 PVC 新建一个名为 nc-pv.yaml 的 YAML 文件 apiVersion: v1 kind: PersistentVolume metadata: name: nc-pv-volume namespace: nc-namespace spec: storageClassName: manual capacity: storage: 5Gi accessModes: - ReadWriteOnce hostPath: path: "/mnt/data" --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: nc-pv-claim namespace: nc-namespace spec: storageClassName: manual accessModes: - ReadWriteOnce resources: requests: storage: 5Gi 然后运行以下命令创建卷

Read more

Automate Install Kafka Cluster with Ansible Playbook

集群概述 此脚本中的配置基于 Kafka 2.6.3 版本 使用 Kafka 发布包中自带的 Zookeeper 组件(通常这没有问题,除非你要将 Zookeeper 安装在单独的服务器上) 在 Kafka 安装目录下独立安装 JDK,目前只支持 Java 8 和 Java 11。 安装计划 服务器规划 IP SSH 端口 SSH 用户 SSH 密码 ROOT 密码 OS 10.1.207.177 22022 kafka 123456 root123 CentOS Linux release 7.9.2009 10.1.207.178 22022 kafka 123456 root123 CentOS Linux release 7.9.2009 10.1.207.183 22022 kafka 123456 root123 CentOS Linux release 7.9.2009 提示: 可以参考批量自动化创建用户 集群节点规划 IP地址 Kafka Zookeeper Java 10.1.207.177 ✓ ✓ ✓ 10.

Read more

Automate Install AntDB Distributed Cluster with Ansible Playbook

集群概述 包含组件 MGR 集群的管理 GTM 全局事务管理 Coordinator 协调员管理用户会话 Data Node 数据节点 安装计划 服务器规划 IP SSH 端口 SSH 用户名 SSH 密码 ROOT 密码 OS 10.1.207.180 22022 antdb 123456 root123 CentOS Linux release 7.9.2009 10.1.207.181 22022 antdb 123456 root123 CentOS Linux release 7.9.2009 10.1.207.182 22022 antdb 123456 root123 CentOS Linux release 7.9.2009 提示: 可以参考批量自动化创建用户 集群节点规划 IP MGR GTM Coordinator DataNode 10.1.207.180 Master Master DataNode_Master_1, DataNode_Slave_3 10.1.207.181 Slave_1 Coordinator_1 DataNode_Master_2, DataNode_Slave_1 10.1.207.182 Slave_1 Coordinator_2 DataNode_Master_3, DataNode_Slave_2 节点安装路径

Read more

Automate Install Redis Master-Slave Sentinel with Ansible Playbook

集群概述 请先在目标服务器创建 redis 用户,此脚本在此用户下使用源代码编译的方式安装一主两从三哨兵的集群 安装计划 服务器规划 IP SSH 端口 SSH 用户名 SSH 密码 ROOT 密码 OS 10.1.207.180 22022 redis redis123 root123 CentOS Linux release 7.9.2009 10.1.207.181 22022 redis redis123 root123 CentOS Linux release 7.9.2009 10.1.207.182 22022 redis redis123 root123 CentOS Linux release 7.9.2009 提示: 可以参考批量自动化创建用户 集群节点规划 IP Redis Sentinel 10.1.207.180 master ✓ 10.1.207.181 slave ✓ 10.1.207.182 slave ✓ 节点安装路径 路径 描述 /opt/redis 源代码上传路径 ~/redis_uninstall.sh 集群卸载脚本 ~/redis.sh Redis 启停脚本 ~/sentinel.sh Sentinel 启停脚本 /data01/redis/bin redis 编译后的程序 /data01/redis/log 日志目录 /data01/redis/data 数据目录 /data01/redis/conf 配置文件目录 下载安装包和 Playbook 脚本 在客户机上创建 playbook 脚本存放目录

Read more

Slow LOG In Redis

SLOWLOG 记录了 Redis 运行时间超时特定阀值的命令。这类慢查询命令被保存在 Redis 服务器的一个定长队列中,最多保存 slowlog-max-len(默认128)个慢查询命令。当慢查询命令达到128个时,新产生的慢查询被加入前,会从队列中删除最旧的慢查询命令。 配置 redis slowlog通过2个参数配置管理,默认命令耗时超过10毫秒,就会被记录到慢查询日志队列中;队列默认保存最近产生的128个慢查询命令。 slowlog-log-slower-than: 慢查询阀值,单位微秒,默认100000 (10毫秒); 执行耗时超过这个值的查询会被记录;建议你生产环境设置为 10000(1毫秒),因为如果命令都是 1 毫秒以上,那么 Redis 吞吐率只有 1000 QPS; slowlog-max-len: 慢查询存储的最大个数,默认128;生产设置设置大于1024,因为 slowlog 会省略过多的参数,慢查询不会占用过多的内存; 读取 返回最新的 2 条慢查询 SLOWLOG GET 2 1) 1) (integer) 9495 2) (integer) 1638760173 3) (integer) 13923 4) 1) "COMMAND" 5) "10.30.107.152:41830" 6) "" 2) 1) (integer) 9494 2) (integer) 1638759729 3) (integer) 17170 4) 1) "SADD" 2) "nc_oauth:uname_to_access:nc:vpengcheng" 3) "\xac\xed\x00\x05sr\x00Corg.springframework.security.oauth2.common.DefaultOAuth2AccessToken\x0c\xb2\x9e6\x1b$\xfa\xce\x02\x00\x06L\x00\x15additionalInformationt\x00\x0fLjava/util/Map;... (9974 more bytes)" 5) "10.

Read more

Automate Install MySQL InnoDB Cluster with Ansible Playbook

集群概述 MySQL InnoDB Cluster 是 MySQL 团队为了高可用性 (HA) 目的而引入的。它为 MySQL 提供了完整的高可用解决方案。我将通过 Ansible Playbook 展示三个节点的 InnoDB 集群配置。 MySQL InnoDB 集群有以下服务组成 MySQL shell Group Replication ( GR ) MySQL Router 安装计划 服务器规划 IP地址 SSH 端口 SSH 用户名 SSH 密码 ROOT 密码 OS 10.1.207.180 22022 mysql 123456 root123 CentOS Linux release 7.9.2009 10.1.207.181 22022 mysql 123456 root123 CentOS Linux release 7.9.2009 10.1.207.182 22022 mysql 123456 root123 CentOS Linux release 7.9.2009 提示: 可以参考批量自动化创建用户 集群节点规划

Read more

Automate Install Elasticsearch Cluster with Ansible Playbook

集群概述 脚本会在此用户下安装三节点集群,因为 7.X 版本后会自带 JDK,所以我们不需要提前安装 Java 环境。 安装计划 服务器规划 IP地址 SSH 端口 SSH 用户名 SSH 密码 ROOT 密码 OS 10.1.207.180 22022 elasticsearch 123456 root123 CentOS Linux release 7.9.2009 10.1.207.181 22022 elasticsearch 123456 root123 CentOS Linux release 7.9.2009 10.1.207.182 22022 elasticsearch 123456 root123 CentOS Linux release 7.9.2009 提示: 可以参考批量自动化创建用户 集群节点规划 IP地址 Elasticsearch 10.1.207.180 ✓ 10.1.207.181 ✓ 10.1.207.182 ✓ 节点安装路径 路径 描述 /opt/elasticsearch 程序安装路径 ~/elasticsearch_uninstall.sh 集群卸载脚本 ~/elasticsearch.sh 集群启停脚本 /data01/elasticsearch/logs 日志文件 /data01/elasticsearch/data 数据文件 /data01/elasticsearch/dump DUMP 文件 /data01/elasticsearch/temp 临时文件 下载安装包和 Playbook 脚本 在你的笔记本上创建 playbook 脚本存放目录

Read more

Linux Command - Grep

使用正则表达式搜索文件内容 macOS cat nc-auth_3000.log | grep -s 'timeCost":\d\d\d\d' centOS cat nc-auth_3000.log | grep -P 'timeCost":\d\d\d\d' 使用正则表达式搜索压缩文件内容 macOS gzip -dc nc-auth_3000.20211106.38.log.gz | grep -s 'timeCost":\d\d\d\d' centOS gzip -dc nc-auth_3000.20211106.38.log.gz | grep -P 'timeCost":\d\d\d\d'

The Impact of Undertow Thread Options & Database Connection Pool on Performance

Hikari 线程参数和数据库连接池参数对业务吞吐率的影响分析 场景 本例中我们使用 Undertow 作为 Web 容器,使用 Hikari 作为数据库连接池, 并通过 spring.datasource.hikari.maximum-pool-size 和 server.undertow.threads.worker 两个参数的调整,看看对于业务的性能影响有多大 为此我准备了一个简单的 DEMO,并且执行 1000 次请求,并发 100,每次请求执行一个 SLEEP(5) 的 SQL模拟单笔耗时。并在一个 2C 的服务器上测试。应用默认参数如下 spring.datasource.hikari.connection-timeout=30000 spring.datasource.hikari.minimum-idle=10 spring.datasource.hikari.maximum-pool-size=10 server.undertow.threads.worker(默认是 2C*8) 默认参数 $ ab -c 100 -n 1000 http://localhost:6060/test This is ApacheBench, Version 2.3 <$Revision: 1879490 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: Server Hostname: localhost Server Port: 6060 Document Path: /test Document Length: 14 bytes Concurrency Level: 100 Time taken for tests: 510.

Read more