k8s生产实践
k8s在生产中需要注意的各种事项和便捷方法
111
配置文件
1 | config: |
1 | inputs: | |
1 | filters: | |
1 | outputs: | |
1 | customParsers: | |
安装
1 | apt-get install -y wget default-mysql-client inotify-tools procps |
当 ProxySQL 启动后,将会监听两个端口:
Admin 管理接口:默认为 6032 该端口用于管理配置 ProxySQL。
接收业务 SQL 接口:默认为 6033 用于服务业务端口,类似于 MySQL 的 3306 端口。
直接使用 MySQL 客户端连接这个管理接口
1 | mysql -u admin -padmin -h 127.0.0.1 -P6032 --prompt='Admin> ' |
查询 Admin 用户的密码
1 | Admin> select @@admin-admin_credentials; |
修改 Admin 接口密码:
1 | set admin-admin_credentials='admin:YouPassword'; |
查询后端实例
1 | select * from mysql_servers; |
查询
设置监控后端使用的账号信息
1 | set mysql-monitor_username = 'root_snowpaw'; |
配置后端节点,写入后端节点的 ip、端口、主机组。
1 | insert into mysql_servers (hostgroup_id, hostname, port) values (1, 'rm-bp10q6od28cazp461mo.mysql.rds.aliyuncs.com', 3306); |
配置访问用户,这里的用户分为两种含义:
将后端mysql账号信息录入到 ProxySQL 中:
1 | -- 写入用户信息 |
连接代理节点,访问数据库:
1 | mysql -u root_snowpaw -p'cS5!Z3&Qy9Nz!NRI' -h 127.0.0.1 -P6033 -e'select @@hostname;' |
现在2304已经不维护了,apt更新是全是404
需要先切换到官方提供的old源
1 | deb http://old-releases.ubuntu.com/ubuntu/ lunar main restricted universe multiverse |
更新所有包
1 | apt-get update |
再将apt源更改为2310
1 | deb http://old-releases.ubuntu.com/ubuntu/ mantic main restricted universe multiverse |
1 | apt-get update |
1 | root@v:~# lsb_release -a |
注意:
1 | Checking for a new Ubuntu release |
1 | C:\Program Files\Typora\resources\page-dist |
安装caddy和xcaddy
1 | 下载caddy_2.8.4_linux_amd64.deb xcaddy_0.4.2_linux_amd64.deb |
初始化go项目
1 | go mod init mymodule |
mymodule.go
1 | package mymodule |
Caddyfile
1 | { |
查看插件
1 | xcaddy list-modules |
直接跑
1 | xcaddy run --config Caddyfile |
打包
1 | GOOS=linux GOARCH=amd64 CGO_ENABLED=0 xcaddy build --with mymodule=. # .表示当前目录 |
1,现状描述
由于某些原因,导致rocketmq集群中某个master节点不能正常服务,需要为master节点做流量迁移动作,已确保消息不丢失配置策略为:
如果直接下线该master,由于主从异步复制,可能导致部分消息来不及复制到slave造成消息丢失。所以该方案不可行。
另一种方案选择:关闭该broker的写入权限,待该broker不再有写入和消费时,再下线该节点。
2表示只写权限,4表示只读权限,6表示读写权限
1 | ./mqadmin updateBrokerConfig -b broker:port -n nameserver:prot -k brokerPermission -v 4 |
1 | ./mqadmin clusterList -n nameserver:prot |
观察InTPS和OutTPS,理想情况都为零时,并不再变化时,则该节点可下线了。
然而,在实际过程中并没有出现为零的情况,InTPS和OutTPS总是有值,有时个位数字有时是两位数字,大部分时间在20多的值。此刻要分析下broker目前的消费状态。
1 | ./mqadmin brokerConsumeStats -b broker:prot -n nameserver:prot >> brokerConsumeStats.tmp |
查看brokerConsumeStats.tmp,主要查看#LastTime和#Diff。发现%RETRY%重试类队列#Diff有很微小(1或者3)的数据,而其他topic均为0. LastTime时间最新也是发生在%RETRY%队列中。此时可以让该节点下线操作。
1 | ./mqadmin updateBrokerConfig -b broker:port -n nameserver:prot -k brokerPermission -v 6 |
观察各节点流量是否正常
1 | ./mqadmin clusterList -n nameserver:prot |
需要epel源
安装 QEMU 二进制文件:
1 | # 对于 Ubuntu/Debian 系统 |
注册QEMU 二进制文件到 Docker 中:
1 | docker run --rm --privileged multiarch/qemu-user-static --reset -p yes |
在 Dockerfile 中使用 FROM
指令指定基础镜像的架构:
1 | FROM --platform=linux/arm64 arm64v8/ubuntu:latest # 也可ubuntu:latest |
会根据–platform=自动识别平台
1 | #依次修改主机名* |
1 | apt install -y containerd |
1 | yum install container-selinux -y |
1 | 安装指定版本 |
1 | kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.28.0/manifests/tigera-operator.yaml |
1 | 初始化,并安装容器运行时,安装kubectl kubeadm kubelet |
master
1 | 安装新版本 |
node
1 | k8s_version=1.28.1-00 |
ps:
https://blog.csdn.net/stanluoyuxin/article/details/137070061
https://blog.csdn.net/lhq1363511234/article/details/132379069