2023-9-4使用VeleroFSB备份集群的时候, 遇到了一些错误, 导致整个备份任务没有成功, 状态: PartiallyFailed
: failed to list daemonset pods: client rate limiter Wait returned an error: context deadline exceeded
2023-4-4由于Kubernetes中部署的服务队外发起的tcp请求很难监控, 最近数据库运维在排查来自集群的大量数据库请求, 网络层只能看到来自哪个Kubernetes节点主机. 所以写了下面这个脚本来定时扫描.
2022-10-18注意: 根据自己实际情况, 替换下面名利中的<var>
变量.
启动orcale xe 11g容器
#
Oracle Database XE是人人都可免费使用的 Oracle 数据库. Oracle Database XE 支持最高:
- 最多 12 GB 的用户磁盘数据
- 最大 2 GB 的数据库 RAM
- 最多 2 个 CPU 线程
产品介绍地址:
https://www.oracle.com/cn/database/technologies/appdev/xe.html
...
2022-10-3这篇文章使用fluentd官方提供的kubernetes部署方案daemonset来部署日志收集, 参考项目地址:
本文使用的kubernetes版本为: 1.22.8
使用fluentd镜像为: fluent/fluentd-kubernetes-daemonset:v1.15.2-debian-kafka2-1.0
请注意下文配置中<var>
标记, 需要根据需求自行替换.
创建命名空间
#
本项目所有的资源创建在logging下, 先创建它:
1
| kubectl create ns fluentd-kafka
|
先创建服务账号
#
创建服务账号并赋予集群查看的权限, 使用下面的命令:
...
2022-9-20这篇文章使用fluentd官方提供的kubernetes部署方案daemonset来部署日志收集, 参考项目地址:
本文使用的kubernetes版本为: 1.22.8
使用fluentd镜像为: fluent/fluentd-kubernetes-daemonset:v1.15.2-debian-elasticsearch7-1.0
请注意下文配置中<var>
标记, 需要根据需求自行替换.
创建命名空间
#
本项目所有的资源创建在logging下, 先创建它:
1
2
| NAMESPACE=logging
kubectl create ns $NAMESPACE
|
先创建服务账号
#
创建服务账号并赋予集群查看的权限, 使用下面的命令:
...
2022-9-15Envoy静态配置
#
L4转发
#
下面的例子是配置4层转发, 将443端口的流量都代理到www.example.com
对应的后端的443端口上, 如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| static_resources:
listeners:
- name: listener_0
address:
socket_address:
protocol: TCP
address: 0.0.0.0
port_value: 443
filter_chains:
- filters:
- name: envoy.filters.network.tcp_proxy
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy
stat_prefix: tcp_443
cluster: cluster_0
clusters:
- name: cluster_0
type: LOGICAL_DNS
dns_lookup_family: V4_ONLY
load_assignment:
cluster_name: cluster_0
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: www.example.com
port_value: 443
|
启动Envoy
#
将创建的静态配置文件envoy-custom.yaml
映射到容器内部, 启动:
...
2022-8-30rsync安装
#
在传输双方的服务器上都安装rsync软件. 如果服务器上有rsync可以跳过.
先检查有没有安装rsync:
如果没有安装, 使用下面的命令安装:
1
2
3
4
5
6
7
8
| # Debian
sudo apt-get install rsync
# Red Hat
sudo yum install rsync
# Arch Linux
sudo pacman -S rsync
|
启动rsync守护进程
#
rsync使用最多的是ssh模式. 在现代的公司中, 出于安全的原因, 很多ssh是被禁止使用的. 所以, 我们可以使用rsync的守护进程模式. 一起看看怎么用吧.
...
2022-8-29因为etcd中的内容都是加密的, 使用下面的命令安装解密工具:
1
2
3
4
5
6
| mkdir auger
curl -o ./auger/auger_1.0.2_linux_amd64.tar.gz \
https://llaoj.oss-cn-beijing.aliyuncs.com/files/github.com/etcd-io/auger/releases/download/v1.0.2/auger_1.0.2_linux_amd64.tar.gz
tar -xvf ./auger/auger_1.0.2_linux_amd64.tar.gz -C ./auger
mv ./auger/auger /usr/local/bin/
rm -rf ./auger
|
下面这个脚本提供了etcdctl连接etcd所需要的端点、证书相关的信息. 这个脚本需要在master节点上执行:
...
2022-8-8MetalLB概念安装配置和使用请查看
测试组件的版本情况
#
- kubernetes: v1.22.8
- metellb: v0.10.3
- nginx: latest
创建测试应用
#
创建一个nginx服务和service资源:
1
| kubectl -n without-istio create deploy nginx --image=nginx
|
测试分配IP
#
创建loadbalancer类型的service:
...
2022-8-8nginx反向代理的请求, 和我们直接请求有一定的区别, 比如:
http version
#
nginx proxy 发出的反向代理请求的http version默认是: 1.0, 但是istio支持1.1 & 2.0, 所以如果不增加http版本限制的话istio就无法进行报文解析, 也就无法应用istio-proxy(sidecar)L7层代理策略, 我们知道istio流量治理是基于L7层的.
有时候nginx发出的代理请求的http header中host的值, 不能保证是上游服务的host name. 在这种情况下, 是没办法匹配上游服务在istio-proxy中的L7流量治理的配置.
...