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 [ ...
查询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 ...
批量更新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 ...
Centos7下使用kubeadm搭建高可用k8s 1.28集群
准备机器1这里不在赘述keeplived + nginx的方式创建高可用虚拟IP配置apiserver,只使用单台nginx作为apiserver
hostname
IP
作用
nginx
172.31.23.101
apiserver的负载均衡
k8s-master1
172.31.23.90
k8s master节点
k8s-master2
172.31.23.91
k8s master节点
k8s-master3
172.31.23.92
k8s master节点
k8s-node1
172.31.23.93
k8s worker节点
master节点绑定hosts(直接使用ip地址会有警告)1234vim /etc/hosts172.31.23.90 k8s-master1172.31.23.91 k8s-master2172.31.23.92 k8s-master3
关闭防火墙和SELinux
负载均衡机器必须要关闭,因为6443不是nginx的标准端口,会被selinux拦截, 防火墙也需要放行6443端口, 可以考虑直接关闭防火墙
...
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 ...
openssl基于ECC生成二级可签发client的CA双向认证证书
本文提到的 client.crt server.crt 都是通过ca签发的
证书生成命令生成证书配置
12345678910111213141516171819202122232425262728293031323334353637383940411.签发CA证书# 生成根CA公钥openssl ecparam -out CA.key -name prime256v1 -genkey # 生成证书CSR请求openssl req -subj "/O=TEST Inc./CN=TEST Root CA" -new -key CA.key -out CA.csr # 用根私钥签名CSR请求,生成自签名公钥证书openssl x509 -req -days 3650 -in CA.csr -signkey CA.key -sha256 -extfile openssl.conf -extensions v3_ca -out CA.crt2.签发二级CA# 生成次级CA ECC密钥对openssl ecparam -out 2CA.key -name prime256v1 ...