Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Embedded Hazelcast in Kubernetes environment won't detect members anymore after latest release #24688

Closed
OmarHawk opened this issue May 30, 2023 · 7 comments · Fixed by #24834

Comments

@OmarHawk
Copy link

OmarHawk commented May 30, 2023

Describe the bug
Hi,

we do get Hazelcast in embedded mode as part of a Spring Boot transitive dependency, and after performing the last update (Hazelcast from 5.1.5 to 5.1.6), we noticed that the pods failed to detect each other. The only difference seems to be the version change. Since I didn't see any hint regarding this in the release notes (apart from maybe #24044 or maybe #23932), I wonder, if there needs to be something configured differently now.

Failing log output - see this blacklist entry at the end:

2023-05-30T16:24:57.506Z  WARN 1 --- [           main] c.h.i.impl.HazelcastInstanceFactory      : Hazelcast is starting in a Java modular environment (Java 9 and newer) but without proper access to required Java packages. Use additional Java arguments to provide Hazelcast access to Java internal API. The internal API access is used to get the best performance results. Arguments to be used:
 --add-modules java.se --add-exports java.base/jdk.internal.ref=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/sun.nio.ch=ALL-UNNAMED --add-opens java.management/sun.management=ALL-UNNAMED --add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED
2023-05-30T16:24:57.716Z  INFO 1 --- [           main] com.hazelcast.system.logo                : [10.4.0.31]:5701 [dev] [5.1.6] 
	+       +  o    o     o     o---o o----o o      o---o     o     o----o o--o--o
	+ +   + +  |    |    / \       /  |      |     /         / \    |         |   
	+ + + + +  o----o   o   o     o   o----o |    o         o   o   o----o    |   
	+ +   + +  |    |  /     \   /    |      |     \       /     \       |    |   
	+       +  o    o o       o o---o o----o o----o o---o o       o o----o    o   
2023-05-30T16:24:57.716Z  INFO 1 --- [           main] com.hazelcast.system                     : [10.4.0.31]:5701 [dev] [5.1.6] Copyright (c) 2008-2022, Hazelcast, Inc. All Rights Reserved.
2023-05-30T16:24:57.716Z  INFO 1 --- [           main] com.hazelcast.system                     : [10.4.0.31]:5701 [dev] [5.1.6] Hazelcast Platform 5.1.6 (20230510 - 029cff5) starting at [10.4.0.31]:5701
2023-05-30T16:24:57.716Z  INFO 1 --- [           main] com.hazelcast.system                     : [10.4.0.31]:5701 [dev] [5.1.6] Cluster name: dev
2023-05-30T16:24:57.716Z  INFO 1 --- [           main] com.hazelcast.system                     : [10.4.0.31]:5701 [dev] [5.1.6] Integrity Checker is disabled. Fail-fast on corrupted executables will not be performed.
To enable integrity checker do one of the following: 
  - Change member config using Java API: config.setIntegrityCheckerEnabled(true);
  - Change XML/YAML configuration property: Set hazelcast.integrity-checker.enabled to true
  - Add system property: -Dhz.integritychecker.enabled=true (for Hazelcast embedded, works only when loading config via Config.load)
  - Add environment variable: HZ_INTEGRITYCHECKER_ENABLED=true (recommended when running container image. For Hazelcast embedded, works only when loading config via Config.load)
2023-05-30T16:24:57.719Z  INFO 1 --- [           main] com.hazelcast.system                     : [10.4.0.31]:5701 [dev] [5.1.6] The Jet engine is disabled.
To enable the Jet engine on the members, do one of the following:
  - Change member config using Java API: config.getJetConfig().setEnabled(true)
  - Change XML/YAML configuration property: Set hazelcast.jet.enabled to true
  - Add system property: -Dhz.jet.enabled=true (for Hazelcast embedded, works only when loading config via Config.load)
  - Add environment variable: HZ_JET_ENABLED=true (recommended when running container image. For Hazelcast embedded, works only when loading config via Config.load)
2023-05-30T16:24:58.714Z  INFO 1 --- [           main] c.h.s.d.integration.DiscoveryService     : [10.4.0.31]:5701 [dev] [5.1.6] Kubernetes Discovery properties: { service-dns: null, service-dns-timeout: 5, service-name: dxf-webapp-cache-pool, service-port: 0, service-label: null, service-label-value: true, namespace: dc-ofd-qa, pod-label: null, pod-label-value: null, resolve-not-ready-addresses: true, expose-externally-mode: AUTO, use-node-name-as-external-address: false, service-per-pod-label: null, service-per-pod-label-value: null, kubernetes-api-retries: 3, kubernetes-master: https://kubernetes.default.svc}
2023-05-30T16:24:59.400Z  INFO 1 --- [           main] c.h.s.d.integration.DiscoveryService     : [10.4.0.31]:5701 [dev] [5.1.6] Kubernetes Discovery activated with mode: KUBERNETES_API
2023-05-30T16:24:59.402Z  INFO 1 --- [           main] com.hazelcast.system.security            : [10.4.0.31]:5701 [dev] [5.1.6] Enable DEBUG/FINE log level for log category com.hazelcast.system.security  or use -Dhazelcast.security.recommendations system property to see 🔒 security recommendations and the status of current config.
2023-05-30T16:24:59.600Z  INFO 1 --- [           main] com.hazelcast.instance.impl.Node         : [10.4.0.31]:5701 [dev] [5.1.6] Using Discovery SPI
2023-05-30T16:24:59.606Z  WARN 1 --- [           main] com.hazelcast.cp.CPSubsystem             : [10.4.0.31]:5701 [dev] [5.1.6] CP Subsystem is not enabled. CP data structures will operate in UNSAFE mode! Please note that UNSAFE mode will not provide strong consistency guarantees.
2023-05-30T16:25:00.310Z  INFO 1 --- [           main] c.h.internal.diagnostics.Diagnostics     : [10.4.0.31]:5701 [dev] [5.1.6] Diagnostics disabled. To enable add -Dhazelcast.diagnostics.enabled=true to the JVM arguments.
2023-05-30T16:25:00.315Z  INFO 1 --- [           main] com.hazelcast.core.LifecycleService      : [10.4.0.31]:5701 [dev] [5.1.6] [10.4.0.31]:5701 is STARTING
2023-05-30T16:25:00.600Z  INFO 1 --- [           main] c.h.s.d.integration.DiscoveryService     : [10.4.0.31]:5701 [dev] [5.1.6] Kubernetes plugin discovered availability zone: 0
2023-05-30T16:25:00.635Z  INFO 1 --- [           main] c.h.s.d.integration.DiscoveryService     : [10.4.0.31]:5701 [dev] [5.1.6] Kubernetes plugin discovered node name: aks-agentpool-20404461-vmss00002y
2023-05-30T16:25:00.743Z  WARN 1 --- [           main] c.hazelcast.kubernetes.KubernetesClient  : Cannot fetch public IPs of Hazelcast Member PODs, you won't be able to use Hazelcast Smart Client from outside of the Kubernetes network
2023-05-30T16:25:00.763Z  INFO 1 --- [cached.thread-3] c.h.i.cluster.impl.DiscoveryJoiner       : [10.4.0.31]:5701 [dev] [5.1.6] [10.4.0.31]:5702 is added to the blacklist.
2023-05-30T16:25:00.798Z  INFO 1 --- [cached.thread-2] c.h.i.cluster.impl.DiscoveryJoiner       : [10.4.0.31]:5701 [dev] [5.1.6] [10.4.0.51]:5702 is added to the blacklist.

Working log output:

2023-05-30T16:26:54.524Z  INFO 1 --- [           main] com.hazelcast.system.logo                : [10.4.0.14]:5701 [dev] [5.1.5] 
	+       +  o    o     o     o---o o----o o      o---o     o     o----o o--o--o
	+ +   + +  |    |    / \       /  |      |     /         / \    |         |   
	+ + + + +  o----o   o   o     o   o----o |    o         o   o   o----o    |   
	+ +   + +  |    |  /     \   /    |      |     \       /     \       |    |   
	+       +  o    o o       o o---o o----o o----o o---o o       o o----o    o   
2023-05-30T16:26:54.525Z  INFO 1 --- [           main] com.hazelcast.system                     : [10.4.0.14]:5701 [dev] [5.1.5] Copyright (c) 2008-2022, Hazelcast, Inc. All Rights Reserved.
2023-05-30T16:26:54.525Z  INFO 1 --- [           main] com.hazelcast.system                     : [10.4.0.14]:5701 [dev] [5.1.5] Hazelcast Platform 5.1.5 (20221114 - c52d6ff) starting at [10.4.0.14]:5701
2023-05-30T16:26:54.525Z  INFO 1 --- [           main] com.hazelcast.system                     : [10.4.0.14]:5701 [dev] [5.1.5] Cluster name: dev
2023-05-30T16:26:54.525Z  INFO 1 --- [           main] com.hazelcast.system                     : [10.4.0.14]:5701 [dev] [5.1.5] Integrity Checker is disabled. Fail-fast on corrupted executables will not be performed.
To enable integrity checker do one of the following: 
  - Change member config using Java API: config.setIntegrityCheckerEnabled(true);
  - Change XML/YAML configuration property: Set hazelcast.integrity-checker.enabled to true
  - Add system property: -Dhz.integritychecker.enabled=true (for Hazelcast embedded, works only when loading config via Config.load)
  - Add environment variable: HZ_INTEGRITYCHECKER_ENABLED=true (recommended when running container image. For Hazelcast embedded, works only when loading config via Config.load)
2023-05-30T16:26:54.528Z  INFO 1 --- [           main] com.hazelcast.system                     : [10.4.0.14]:5701 [dev] [5.1.5] The Jet engine is disabled.
To enable the Jet engine on the members, do one of the following:
  - Change member config using Java API: config.getJetConfig().setEnabled(true)
  - Change XML/YAML configuration property: Set hazelcast.jet.enabled to true
  - Add system property: -Dhz.jet.enabled=true (for Hazelcast embedded, works only when loading config via Config.load)
  - Add environment variable: HZ_JET_ENABLED=true (recommended when running container image. For Hazelcast embedded, works only when loading config via Config.load)
2023-05-30T16:26:55.599Z  INFO 1 --- [           main] c.h.s.d.integration.DiscoveryService     : [10.4.0.14]:5701 [dev] [5.1.5] Kubernetes Discovery properties: { service-dns: null, service-dns-timeout: 5, service-name: dxf-webapp-cache-pool, service-port: 0, service-label: null, service-label-value: true, namespace: dc-ofd-qa, pod-label: null, pod-label-value: null, resolve-not-ready-addresses: true, expose-externally-mode: AUTO, use-node-name-as-external-address: false, service-per-pod-label: null, service-per-pod-label-value: null, kubernetes-api-retries: 3, kubernetes-master: https://kubernetes.default.svc}
2023-05-30T16:26:56.205Z  INFO 1 --- [           main] c.h.s.d.integration.DiscoveryService     : [10.4.0.14]:5701 [dev] [5.1.5] Kubernetes Discovery activated with mode: KUBERNETES_API
2023-05-30T16:26:56.207Z  INFO 1 --- [           main] com.hazelcast.system.security            : [10.4.0.14]:5701 [dev] [5.1.5] Enable DEBUG/FINE log level for log category com.hazelcast.system.security  or use -Dhazelcast.security.recommendations system property to see 🔒 security recommendations and the status of current config.
2023-05-30T16:26:56.419Z  INFO 1 --- [           main] com.hazelcast.instance.impl.Node         : [10.4.0.14]:5701 [dev] [5.1.5] Using Discovery SPI
2023-05-30T16:26:56.425Z  WARN 1 --- [           main] com.hazelcast.cp.CPSubsystem             : [10.4.0.14]:5701 [dev] [5.1.5] CP Subsystem is not enabled. CP data structures will operate in UNSAFE mode! Please note that UNSAFE mode will not provide strong consistency guarantees.
2023-05-30T16:26:57.131Z  INFO 1 --- [           main] c.h.internal.diagnostics.Diagnostics     : [10.4.0.14]:5701 [dev] [5.1.5] Diagnostics disabled. To enable add -Dhazelcast.diagnostics.enabled=true to the JVM arguments.
2023-05-30T16:26:57.198Z  INFO 1 --- [           main] com.hazelcast.core.LifecycleService      : [10.4.0.14]:5701 [dev] [5.1.5] [10.4.0.14]:5701 is STARTING
2023-05-30T16:26:57.400Z  INFO 1 --- [           main] c.h.s.d.integration.DiscoveryService     : [10.4.0.14]:5701 [dev] [5.1.5] Kubernetes plugin discovered availability zone: 0
2023-05-30T16:26:57.438Z  INFO 1 --- [           main] c.h.s.d.integration.DiscoveryService     : [10.4.0.14]:5701 [dev] [5.1.5] Kubernetes plugin discovered node name: aks-agentpool-20404461-vmss00002y
2023-05-30T16:26:57.597Z  WARN 1 --- [           main] c.hazelcast.kubernetes.KubernetesClient  : Cannot fetch public IPs of Hazelcast Member PODs, you won't be able to use Hazelcast Smart Client from outside of the Kubernetes network
2023-05-30T16:26:57.698Z  INFO 1 --- [.IO.thread-in-0] c.h.i.server.tcp.TcpServerConnection     : [10.4.0.14]:5701 [dev] [5.1.5] Initialized new cluster connection between /10.4.0.14:48785 and /10.4.0.44:5701
2023-05-30T16:26:58.643Z  INFO 1 --- [.IO.thread-in-1] c.h.i.server.tcp.TcpServerConnection     : [10.4.0.14]:5701 [dev] [5.1.5] Initialized new cluster connection between /10.4.0.14:56901 and /10.4.0.62:5701

Both logs were produced on the very same kubernetes cluster... Maybe, it is something related to the ports, as the failing one mentions 5702 while the succeeding one (with the older version) mentions 5701 as the target...

Expected behavior
5.1.5 and 5.1.6 should behave the same, when configured the same
To Reproduce

Steps to reproduce the behavior:

  1. Configure Hazelcast as mentioned in the Logs?

Additional context
Spring Boot 3.0.6->3.0.7 update
JDK 17

@OmarHawk OmarHawk changed the title Embedded Hazelcast in Kubernetes environment won't detect members anymore Embedded Hazelcast in Kubernetes environment won't detect members anymore after latest release May 31, 2023
@OmarHawk
Copy link
Author

If you need more logs (i.e. on debug level), please let me know. I may have to strip some hopefully not so important information from them then though. ;-)

@bwmeier
Copy link

bwmeier commented Jun 2, 2023

@OmarHawk - we're running into a very similar issue with a later version. Looking at the KubernetesAPIProvider, it appears to be searching for a k8s port named "hazelcast-service-port", which is not a valid port name for our version of k8s. I'll keep an eye out on this issue, we were going to open up a new ticket. If I do, I'll link it here.

@bwmeier
Copy link

bwmeier commented Jun 2, 2023

@OmarHawk Opened #24705 for our issue, please check to see if our workaround helps you in any way.

@SeriyBg
Copy link
Contributor

SeriyBg commented Jun 13, 2023

Hello @OmarHawk, could you share your Hazelcast configuration (in particular networking configuration) and the K8s deployment/services spec?

@OmarHawk
Copy link
Author

OmarHawk commented Jun 13, 2023

Hi,

The strange thing about this is - on the very same cluster, we do have applications with hazelcast 5.1.6 with the very same kind of k8s service + same kind of hazelcast config in the service and one of them does work and the other one does not work.

As if maybe the used k8s APIs return the ports sometimes in a different order than specified in the service descriptor (therefore luckily finding the working port first) - or the ports being handled somewhere in an unordered List / Set inbetween, therefore running only 'sometimes' into the same problem as @bwmeier has. I'll provide further information tomorrow, but I'd assume, it is the very same problem as @bwmeier has.

@SeriyBg
Copy link
Contributor

SeriyBg commented Jun 14, 2023

@OmarHawk, this is definitely the same issue. But we would like to see how your config is different, to provide a good fix for it.

@OmarHawk
Copy link
Author

OmarHawk commented Jun 14, 2023

Ok, here you are.

This is the part of the log output which shows the current com.hazelcast.config.Config - mostly defaults actually. ;-)

2023-06-14T14:34:53.886Z DEBUG 1 --- [           main] c.b.o.c.HazelcastConfiguration           : Final Hazelcast config: Config{configurationUrl=null, configurationFile=null, classLoader=null, properties={hazelcast.jmx=true, hazelcast.phone.home.enabled=false}, instanceName='null', clusterName='dev', networkConfig=NetworkConfig{publicAddress='null', port=5701, portCount=100, portAutoIncrement=true, join=JoinConfig{multicastConfig=MulticastConfig [enabled=false, multicastGroup=224.2.2.3, multicastPort=54327, multicastTimeToLive=32, multicastTimeoutSeconds=2, trustedInterfaces=[], loopbackModeEnabled=null], tcpIpConfig=TcpIpConfig [enabled=false, connectionTimeoutSeconds=3, members=[], requiredMember=null], awsConfig=AliasedDiscoveryConfig{tag='aws', enabled=false, usePublicIp=false, properties={}}, gcpConfig=AliasedDiscoveryConfig{tag='gcp', enabled=false, usePublicIp=false, properties={}}, azureConfig=AliasedDiscoveryConfig{tag='azure', enabled=false, usePublicIp=false, properties={}}, kubernetesConfig=AliasedDiscoveryConfig{tag='kubernetes', enabled=true, usePublicIp=false, properties={service-name=dxf-webapp-cache-pool, resolve-not-ready-addresses=true, namespace=dc-ofd-dev}}, eurekaConfig=AliasedDiscoveryConfig{tag='eureka', enabled=false, usePublicIp=false, properties={}}, discoveryConfig=DiscoveryConfig{discoveryStrategyConfigs=[], discoveryServiceProvider=null, nodeFilter=null, nodeFilterClass='null'}, autoDetectionConfig=AutoDetectionConfig{enabled=false}}, interfaces=InterfacesConfig{enabled=false, interfaces=[]}, sslConfig=null, socketInterceptorConfig=null, symmetricEncryptionConfig=null, icmpFailureDetectorConfig=null, restApiConfig=RestApiConfig{enabled=false, enabledGroups=[CLUSTER_READ, HEALTH_CHECK]}, memcacheProtocolConfig=MemcacheProtocolConfig{enabled=false}}, configPatternMatcher=com.hazelcast.config.matcher.MatchingPointConfigPatternMatcher@2a685eba, mapConfigs={default=MapConfig{name='default', inMemoryFormat='BINARY', metadataPolicy=CREATE_ON_UPDATE, backupCount=1, asyncBackupCount=0, timeToLiveSeconds=0, maxIdleSeconds=0, readBackupData=false, evictionConfig=EvictionConfig{size=2147483647, maxSizePolicy=PER_NODE, evictionPolicy=NONE, comparatorClassName=null, comparator=null}, merkleTree=MerkleTreeConfig{enabled=null, depth=10}, eventJournal=EventJournalConfig{enabled=false, capacity=10000, timeToLiveSeconds=0}, hotRestart=HotRestartConfig{enabled=false, fsync=false}, dataPersistenceConfig=DataPersistenceConfig{enabled=false, fsync=false}, nearCacheConfig=null, mapStoreConfig=MapStoreConfig{enabled=false, className='null', factoryClassName='null', writeDelaySeconds=0, writeBatchSize=1, implementation=null, factoryImplementation=null, properties={}, initialLoadMode=LAZY, writeCoalescing=true}, mergePolicyConfig=MergePolicyConfig{policy='com.hazelcast.spi.merge.PutIfAbsentMergePolicy', batchSize=100}, wanReplicationRef=null, entryListenerConfigs=[], indexConfigs=[], attributeConfigs=[], splitBrainProtectionName=null, queryCacheConfigs=[], cacheDeserializedValues=INDEX_ONLY, statisticsEnabled=true, entryStatsEnabled=false, tieredStoreConfig=TieredStoreConfig{enabled=false, memoryTierConfig=MemoryTierConfig{capacity=256 MEGABYTES}, diskTierConfig=DiskTierConfig{enabled=false, deviceName='default-tiered-store-device'}}}, IP_ADDRESS_CACHE=MapConfig{name='IP_ADDRESS_CACHE', inMemoryFormat='BINARY', metadataPolicy=CREATE_ON_UPDATE, backupCount=1, asyncBackupCount=0, timeToLiveSeconds=10800, maxIdleSeconds=0, readBackupData=false, evictionConfig=EvictionConfig{size=5000, maxSizePolicy=PER_NODE, evictionPolicy=LRU, comparatorClassName=null, comparator=null}, merkleTree=MerkleTreeConfig{enabled=null, depth=10}, eventJournal=EventJournalConfig{enabled=false, capacity=10000, timeToLiveSeconds=0}, hotRestart=HotRestartConfig{enabled=false, fsync=false}, dataPersistenceConfig=DataPersistenceConfig{enabled=false, fsync=false}, nearCacheConfig=null, mapStoreConfig=MapStoreConfig{enabled=false, className='null', factoryClassName='null', writeDelaySeconds=0, writeBatchSize=1, implementation=null, factoryImplementation=null, properties={}, initialLoadMode=LAZY, writeCoalescing=true}, mergePolicyConfig=MergePolicyConfig{policy='com.hazelcast.spi.merge.PutIfAbsentMergePolicy', batchSize=100}, wanReplicationRef=null, entryListenerConfigs=[], indexConfigs=[], attributeConfigs=[], splitBrainProtectionName=null, queryCacheConfigs=[], cacheDeserializedValues=INDEX_ONLY, statisticsEnabled=true, entryStatsEnabled=false, tieredStoreConfig=TieredStoreConfig{enabled=false, memoryTierConfig=MemoryTierConfig{capacity=256 MEGABYTES}, diskTierConfig=DiskTierConfig{enabled=false, deviceName='default-tiered-store-device'}}}}, cacheConfigs={}, topicConfigs={}, reliableTopicConfigs={}, queueConfigs={}, multiMapConfigs={}, listConfigs={}, setConfigs={}, executorConfigs={}, durableExecutorConfigs={}, scheduledExecutorConfigs={}, replicatedMapConfigs={}, wanReplicationConfigs={}, splitBrainProtectionConfigs={}, ringbufferConfigs={}, cardinalityEstimatorConfigs={}, flakeIdGeneratorConfigMap={}, pnCounterConfigs={}, advancedNetworkConfig=AdvancedNetworkConfig{isEnabled=false, join=JoinConfig{multicastConfig=MulticastConfig [enabled=false, multicastGroup=224.2.2.3, multicastPort=54327, multicastTimeToLive=32, multicastTimeoutSeconds=2, trustedInterfaces=[], loopbackModeEnabled=null], tcpIpConfig=TcpIpConfig [enabled=false, connectionTimeoutSeconds=5, members=[], requiredMember=null], awsConfig=AliasedDiscoveryConfig{tag='aws', enabled=false, usePublicIp=false, properties={}}, gcpConfig=AliasedDiscoveryConfig{tag='gcp', enabled=false, usePublicIp=false, properties={}}, azureConfig=AliasedDiscoveryConfig{tag='azure', enabled=false, usePublicIp=false, properties={}}, kubernetesConfig=AliasedDiscoveryConfig{tag='kubernetes', enabled=false, usePublicIp=false, properties={}}, eurekaConfig=AliasedDiscoveryConfig{tag='eureka', enabled=false, usePublicIp=false, properties={}}, discoveryConfig=DiscoveryConfig{discoveryStrategyConfigs=[], discoveryServiceProvider=null, nodeFilter=null, nodeFilterClass='null'}, autoDetectionConfig=AutoDetectionConfig{enabled=true}}, memberAddressProvider=MemberAddressProviderConfig{enabled=false, className='null', properties={}, implementation=null}, endpointConfigs={EndpointQualifier{type='MEMBER'}=EndpointConfig{protocolType=MEMBER, name=null, port=5701, portCount=100, portAutoIncrement=true, publicAddress=null, interfaces=InterfacesConfig{enabled=false, interfaces=[]}, sslConfig=null, socketInterceptorConfig=null}}, icmpFailureDetectorConfig=null}, servicesConfig=ServicesConfig{enableDefaults=true, services={}}, securityConfig=SecurityConfig [enabled=false, securityInterceptorConfigs=[], clientPolicyConfig=PermissionPolicyConfig{className='null', implementation=null, properties={}}, clientPermissionConfigs=[], realmConfigs={}, memberRealm=null, clientRealm=null, clientBlockUnmappedActions=true, onJoinPermissionOperation=RECEIVE], listenerConfigs=[], partitionGroupConfig=PartitionGroupConfig{enabled=false, groupType=PER_MEMBER, memberGroupConfigs=[]}, managementCenterConfig=ManagementCenterConfig{scriptingEnabled=falsetrustedInterfaces=[]}, serializationConfig=SerializationConfig{portableVersion=0, dataSerializableFactoryClasses={}, dataSerializableFactories={}, portableFactoryClasses={}, portableFactories={}, globalSerializerConfig=null, serializerConfigs=[], checkClassDefErrors=true, classDefinitions=[], byteOrder=BIG_ENDIAN, useNativeByteOrder=false, javaSerializationFilterConfig=null, allowOverrideDefaultSerializers=false}, managedContext=null, userContext={}, memberAttributeConfig=com.hazelcast.config.MemberAttributeConfig@1f, nativeMemoryConfig=NativeMemoryConfig{enabled=false, size=512 MEGABYTES, allocatorType=POOLED, minBlockSize=16, pageSize=4194304, metadataSpacePercentage=12.5, persistentMemoryConfig=PersistentMemoryConfig{enabled=false, mode=MOUNTED, directoryConfigs=[]}}, hotRestartPersistenceConfig=HotRestartPersistenceConfig{enabled=false, baseDir=hot-restart, backupDir=null, parallelism=1, validationTimeoutSeconds=120, dataLoadTimeoutSeconds=900, clusterDataRecoveryPolicy=FULL_RECOVERY_ONLY, autoRemoveStaleData=true, encryptionAtRestConfig=EncryptionAtRestConfig{enabled=false, algorithm='AES/CBC/PKCS5Padding', salt='***', keySize=0, secureStoreConfig=com.hazelcast.config.EncryptionAtRestConfig$NoSecureStoreConfig@0}}, persistenceConfig=PersistenceConfig{enabled=false, baseDir=persistence, backupDir=null, parallelism=1, validationTimeoutSeconds=120, dataLoadTimeoutSeconds=900, rebalanceDelaySeconds=900, clusterDataRecoveryPolicy=FULL_RECOVERY_ONLY, autoRemoveStaleData=true, encryptionAtRestConfig=EncryptionAtRestConfig{enabled=false, algorithm='AES/CBC/PKCS5Padding', salt='***', keySize=0, secureStoreConfig=com.hazelcast.config.EncryptionAtRestConfig$NoSecureStoreConfig@0}}, userCodeDeploymentConfig=com.hazelcast.config.UserCodeDeploymentConfig@572a75b2, crdtReplicationConfig=com.hazelcast.config.CRDTReplicationConfig@7cda, liteMember=false, cpSubsystemConfig=CPSubsystemConfig{cpMemberCount=0, groupSize=0, sessionTimeToLiveSeconds=300, sessionHeartbeatIntervalSeconds=5, missingCPMemberAutoRemovalSeconds=14400, failOnIndeterminateOperationState=false, raftAlgorithmConfig=RaftAlgorithmConfig{leaderElectionTimeoutInMillis=2000, leaderHeartbeatPeriodInMillis=5000, maxMissedLeaderHeartbeatCount=5, appendRequestMaxEntryCount=100, commitIndexAdvanceCountToSnapshot=10000, uncommittedEntryCountToRejectNewAppends=100, appendRequestBackoffTimeoutInMillis=100}, semaphoreConfigs={}, lockConfigs={}}, sqlConfig=SqlConfig{statementTimeoutMillis=0}, metricsConfig=MetricsConfig{enabled=true, managementCenterConfig=MetricsManagementCenterConfig{enabled=true, retentionSeconds=5}, jmxConfig=MetricsJmxConfig{enabled=true}, collectionFrequencySeconds=5}, auditlogConfig=AuditlogConfig{factoryClassName='null', enabled=false, properties={}}, jetConfig=com.hazelcast.jet.config.JetConfig@bebd956b, deviceConfigs={default-tiered-store-device=LocalDeviceConfig{name='default-tiered-store-device', baseDir=/tiered-store, capacity=256 GIGABYTES, blockSize=4096, readIOThreadCount=4, writeIOThreadCount=4}}, integrityCheckerConfig=com.hazelcast.config.IntegrityCheckerConfig@75a118e6}

We do have following additional system properties set:
hazelcast.discovery.enabled: true
hazelcast.merge.first.run.delay.seconds: 50

Then, here is our deployment config (the containers ports part; left away the rest, hope, this is enough):

apiVersion: apps/v1
kind: Deployment
metadata:
  name: dxf-webapp-deployment
  namespace: dc-ofd-dev
  labels:
    app: dxf-webapp
spec:
  template:
    metadata:
      labels:
        app: dxf-webapp
    spec:
      containers:
      - name: dxf-webapp
        ports:
        - containerPort: 8081
        - containerPort: 5701
        - containerPort: 5702

Then here the Service configuration - we do have one specific Service descriptor just for the Hazelcast ports:

apiVersion: v1
kind: Service
metadata:
  name: dxf-webapp-cache-pool
  namespace: dc-ofd-dev
spec:
  type: ClusterIP
  clusterIP: None
  selector:
    app: dxf-webapp
  ports:
  - name: hazelcast
    port: 5701
  - name: hazelcast2
    port: 5702

And a second one for the application itself and its actual Ingress, but I guess, this won't play a role...

apiVersion: v1
kind: Service
metadata:
  name: dxf-webapp-internal-svc
  namespace: dc-ofd-dev
spec:
  ports:
  - name: http
    protocol: TCP
    port: 8081
    targetPort: 8081
  selector:
    app: dxf-webapp

SeriyBg added a commit that referenced this issue Jun 19, 2023
Change the port name from `hazelcast-service-port` that is longer than
15 characters to `hazelcast`.

Fixes #24688
Fixes #24705 

Breaking changes (list specific methods/types/messages):
* API
* client protocol format
* serialized form
* snapshot format

Checklist:
- [+] Labels (`Team:`, `Type:`, `Source:`, `Module:`) and Milestone set
- [+] Label `Add to Release Notes` or `Not Release Notes content` set
- [+] Request reviewers if possible
- [+] Send backports/forwardports if fix needs to be applied to
past/future releases
- [+] New public APIs have `@Nonnull/@Nullable` annotations
- [+] New public APIs have `@since` tags in Javadoc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants