SNAT服务器搭建
查看是否开启路由转发cat /proc/sys/net/ipv4/ip_forward回显结果:1为开启,0为关闭,默认为0。结果为1 跳过以下步骤,结果0 执行以下步骤vi /etc/sysctl.conf
开启IP转发功能。net.ipv4.ip_forward = 1配置生效sysctl -p /etc/sysctl.conf
如果有使用firewalld 则卸载,否则跳过systemctl remove firewalld -yyum install iptables-services -y
配置snat规则1iptables -t nat -A POSTROUTING -o eth0 -s (soure IP) -j SNAT --to (snat服务器IP)
保存snat规则1service iptables save
查看snat规则1iptables -t nat --list
添加开机启动12vi /etc/rc.localiptables -t nat -A POST ...
查询redis未设置过期时间的key
查询并导出redis中没有设置过期时间的key
1234如何查询Redis中没有设置过期时间的key数量导出Redis中没有设置过期时间的key安全删除Redis中没有设置过期时间的key此脚本使用python3导出 需要 pip3 install redis
123456-host:Redis连接地址,默认127.0.0.1;-p:Redis连接端口;-d:需要扫描的db,默认仅扫描0库;-a:Redis连接密码;执行方式python3 check_redis.py -host 127.0.0.1 -p 6379 -d 0 -a test1111
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091 ...
prometheus监控部署及常规组件
prometheus.yaml
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata: name: prometheusrules:- apiGroups: [""] resources: - nodes - nodes/proxy - services - endpoints - pods verbs: ["get", "list", "watch"]- apiGroups: - extensions - network ...
腾讯云tke-ingress开启ingress域名访问日志
容器类型为containers的tke集群控制台创建完ingress-controller之后,由于默认日志是打印在pod内的文件,现在需要自行收集访问日志,需要把日志打印在正常的pod输出上在收集
在ingress-controller中默认nginx配置为
123456access-log-path: /var/log/nginx/nginx_access.logerror-log-path: /var/log/nginx/nginx_error.loglog-format-upstream: $remote_addr - $remote_user [$time_iso8601] $msec "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_length $request_time [$proxy_upstream_name] [$proxy_alternative_upstream_name] [$upstr ...
无题
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263import socketimport timedef telnet_check(host, port, timeout=1): """ 基于socket检测主机端口是否可通(替代telnetlib) :param host: 目标主机(IP或域名) :param port: 目标端口(整数) :param timeout: 超时时间(秒),默认1秒 :return: 布尔值 -> True(通)/ False(不通) """ # 创建TCP socket对象(AF_INET=IPv4,SOCK_STREAM=TCP) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ...
redis-cli常用命令
redis登录
123456$ 指定ip、端口、密码redis-cli -h [ip] -p [port] -a [pwd]$ 指定ip、端口、密码并清理redis缓存redis-cli -h [ip] -p [port] -a [pwd] flushall$ 指定ip、端口、密码、数据库redis-cli -h [ip] -p [port] -a [pwd] -n [db_number]
登录redis控制台操作
1234567891011切换到DB 1;redis有16个DB,编号0到15,默认使用0select 1验证登录auth [password]查看当前库的key的数量dbsize删除当前库的全部数据flushdb删除所有库的全部数据flushall
redis key相关命令
123456789101112131415161718192021查看当前库的全部keykeys *判断某个key是否存在,存在返回1,不存在返回0exists [key]查看某个key的类型,如果key不存在,则返回nonetype [key]删除指定的key数据,成功返回1,失败返回0del [ ...
containerd容器运行时导致failed to get sandbox ip
问题1使用containerd作为容器运行时导致的kubelet error determining status: rpc error: code = Unknown desc = failed to get sandbox ip: check network namespace closed: remove netns: unlinkat
处理方法123456echo 1 > /proc/sys/fs/may_detach_mounts或者sysctl -w fs.may_detach_mounts=1建议:部署过程中追加 内核参数: fs.may_detach_mounts=1
k8s常用操作命令
创建k8s-api管理员token
123456# 创建tokenkubectl create serviceaccount k8s-admin -n kube-systemkubectl create clusterrolebinding k8s-admin --clusterrole=cluster-admin --serviceaccount=kube-system:k8s-admin# 查看tokenkubectl -n kube-system describe secrets $(kubectl -n kube-system get secret | grep k8s-admin | awk '{print $1}')
后端业务是 HTTPS 服务,通过 Ingress-Nginx 转发
12annotations: nginx.ingress.kubernetes.io/backend-protocol: HTTPS
kubectl自动补全安装
123456789yum -y install bash-completionsourc ...
k8s配置ingress访问集群外部资源
使用ingress访问外部资源,首先需要创建service指向我们需要访问的资源而每个service包含一个endpoint
1endpoint是k8s集群中的一个资源对象,存储在etcd中,用来记录一个service对应的所有pod的访问地址。service配置selector,endpoint controller才会自动创建对应的endpoint对象;否则,不会生成endpoint对象.
endpoint和对应service的yaml文件
123456789101112131415161718192021222324252627282930kind: EndpointsapiVersion: v1metadata: # 此处 metadata.name 的值要和 service 中的 metadata.name 的值保持一致 # endpoint 的名称必须和服务的名称相匹配 name: kibana namespace: publicsubsets: - addresses: # 服务将连接重定向到 endpoint 的 IP 地址 - ip: 1 ...
批量更新k8s中使用的域名证书
脚本如下123456789101112131415161718192021#!/bin/bashsource /etc/rc.d/init.d/functionsset -euo pipefailexport PATH=/opt/kube/bin:$PATHsecret_name=test-comcert_name=test.com.crtkey_name=test.com.keyif [ "$#" == 0 ];then for ns in `kubectl get ns|grep -v "NAME\|kube-*"|awk '{print $1}'`;do kubectl create secret tls $secret_name --cert=$cert_name --key=$key_name -n $ns --dry-run=client -o yaml |kubectl apply -f - action $ns true doneelse for ns in $@;do ...