Wil*_*ong 6 dns jgroups infinispan kubernetes
我想在 kubernetes 环境中设置一个 inifinispan 集群。
DNS_PING 是发现协议。它适用于使用 DeploymentConfig 设置部署的 pod。但是,当我们将设置从 DeploymentConfig 切换到 StatefulSet 时,它不起作用。
这是因为我们不能直接通过名称(pod name)查询 pod 的 IP,而是使用(pod name).(headless service created)模式。
jgroups 对我来说是新的。感谢有人建议我们如何为这种情况正确配置 DNS_PING。非常感谢。
我正在做类似的事情,希望对您有所帮助:
当您在 statefulset 上启动 pod 时,您可以使用内部 shell 检索本地 DNS 并显示主机文件,如下所示:
% kubectl exec custom-infinispan-0 -it -- sh
sh-4.4$ cat /etc/hosts
# Kubernetes-managed hosts file.
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
fe00::0 ip6-mcastprefix
fe00::1 ip6-allnodes
fe00::2 ip6-allrouters
10.xxx.xx.xx stafulset-0.<your-service>.default.svc.cluster.local statefulset-0
Run Code Online (Sandbox Code Playgroud)
如果是 infinispan,您需要使用 JAVA_OPTS 将正确的查询加载为 -D 参数。
可以使用如下所示的内容:
apiVersion: v1
kind: ConfigMap
metadata:
name: <your-thingie>-infinispan
data:
INFINISPAN_CACHE_STATISTICS: "true"
USER: "admin"
DB_ADDR: "mariadb"
DB_PORT: "3306"
DB_USER: "<>"
DB_DATABASE: "<>"
JAVA_OPTIONS: "-Dinfinispan.cluster.stack=k8s -Djgroups.dns.query=<your-thingie>-infinispan.default.svc.cluster.local"
Run Code Online (Sandbox Code Playgroud)
重要的是您需要生成自定义容器,因为 infinispan 并不总是包含集群堆栈的配置。您可以在https://github.com/infinispan/infinispan/tree/main/core/src/main/resources/default-configs找到它们
如果您需要有关您的解决方案的更多信息,您还可以执行以下操作:
% kubectl exec custom-infinispan-0 -it -- sh
sh-4.4$ cat /etc/hosts
# Kubernetes-managed hosts file.
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
fe00::0 ip6-mcastprefix
fe00::1 ip6-allnodes
fe00::2 ip6-allrouters
10.xxx.xx.xx stafulset-0.<your-service>.default.svc.cluster.local statefulset-0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1372 次 |
| 最近记录: |