Manage Splunk POD
Manage your Splunk POD cluster using the Kubernetes Installer to retrieve credentials, access network information, and manage apps.
Use the Kubernetes Installer for Splunk POD to manage your Splunk POD cluster. Get credentials, view network configuration details, install and update apps such as Splunk Enterprise Security (ES), and more.
Access Splunk Web
To access the Splunk Web interface and other management consoles, retrieve the auto-generated credentials and identify the correct service ports.
View local documentation
Access documentation and installation-specific network information directly from your web browser.
Manage apps
The Kubernetes Installer for Splunk POD uses the SOK app framework to manage apps within the Splunk POD cluster.
The Kubernetes Installer for Splunk POD uses the SOK (Splunk Operator for Kubernetes) app framework to manage apps within the Splunk POD cluster. The app framework installs new or updated apps at 15-minute intervals. For more information, see the SOK App Framework Resource Guide on GitHub.
Install Splunk Enteprise Security
Install and configure Enterprise Security (ES) on a Splunk POD cluster.
Splunk POD supports Splunk Enterprise Security (ES) on any search head tier (standalone or search head cluster).
To install ES on the Splunk POD cluster, add the following details to the static cluster configuration YAML file:
- standalone stanza (pod-small): Specify a name of your choice in the
standalonestanza, for example "es-sh". Splunk POD small supports ES installation on standalone search heads only. - searchheadcluster stanza (pod-medium, pod-large, pod-xlarge): Specify a name of your choice in the
searchheadclusterstanza, for example "es-shc". Splunk POD medium and large support ES installation on search head clusters only. - ES app: List the ES app package under the
standalone[].apps.premiumscope. Thepremiumscope applies to ES only. - Indexer apps: List the apps to install on indexers (e.g. Splunk_TA_ForIndexers) under the
clustermanager.apps.clusterscope.
Configure static cluster configuration file for ES
Example: pod-small with ES. Deploys 2 standalone search heads (1 standard, 1 with ES):
clustermanager:
apps:
cluster: ["./Splunk_TA_ForIndexers_8.1.1.tgz"]
standalone:
- name: core-sh
apps:
local: ["./performance-insights-for-splunk_118.tgz"]
- name: es-sh
apps:
local: []
premium: ["./splunk_app_es-8.1.1.tgz"]
Example: pod-medium, pod-large, or pod-xlarge with ES. Deploys 2 SHCs (1 standard, 1 with ES):
searchheadcluster:
# Port 443
- name: core-shc
apps:
cluster: ["./performance-insights-for-splunk_118.tgz"]
# Port 8100
- name: es-shc
apps:
cluster: []
premium: ["./splunk_app_es-8.1.1-176740.tgz"]
For details on configuring standalone search heads and search head clusters, see Static cluster configuration file reference.
For more information, see Install Splunk Enterprise Security in a Splunk POD cluster.
Install Splunk IT Service Intelligence
Install and configure ITSI on a Splunk POD cluster.
Splunk POD supports the Splunk IT Service Intelligence (ITSI) premium app on any search head tier (standalone or search head cluster).
To install ITSI on the Splunk POD cluster, add the following details to the static cluster configuration YAML file:
- standalone stanza (pod-small): Specify a name of your choice in the
standalonestanza, for example "itsi-sh". - searchheadcluster stanza (pod-medium, pod-large, pod-xlarge): Specify a name of your choice in the
searchheadclusterstanza, for example "itsi-shc". - Cluster Manager apps: List the required ITSI indexer app under the
clustermanager.apps.clusterscope. - License Manager apps: List the required ITSI license apps under the
licensemanager.apps.localscope. - Licenses: Specify the ITSI license file in the
licensesarray.
Installing ITSI in a Splunk POD cluster involves three high-level tasks:
- Unpack the ITSI bundle and repackage the individual ITSI sub-apps.
- Download OpenJDK 17 and embed it into a custom Splunk app named
jdk. - Map the ITSI component apps and the JDK app to specific Splunk tiers in the Splunk POD static cluster configuration file.
Unpack the ITSI bundle and repackage individual sub-apps
The ITSI app bundle includes all necessary ITSI sub-apps. Each sub-app must be packaged as a separate tarball before installation. Note that .spl files are the same as .tgz files.
- Download the ITSI app package.
- Unpack the ITSI tarball:
CODE
tar -xzvf splunk-it-service-intelligence_<version>.splNote: Splunk software uses the .spl file extension for app packages. This format is a gzip-compressed tarball, extractable with standard tar commands. - Compress each sub-app directory found in the unpacked bundle into an individual tarball:
CODE
tar -czvf <subapp>.tgz <subapp>Repeat for each sub-app in the unpacked bundle. You can delete the original sub-app directories after repackaging. Note the file paths of the sub-app tarballs for use in the static cluster configuration file.
Prepare the JDK custom app
ITSI requires a Java runtime. To provide it, create a custom Splunk app called jdk that contains an OpenJDK 17 installation. The folder must be named jdk .
- Create the app directory structure:
CODE
mkdir -p jdk/default jdk/metadataThe resulting directory structure:
CODEjdk/ ├── default/ │ └── app.conf └── metadata/ └── default.meta - Create the jdk/default/app.conf file with the following content:
CODE
[install] state = enabled is_configured = true [ui] show_in_nav = false - Create the jdk/metadata/default.meta file with the following content:
CODE
[] access = read : [ * ], write : [ admin ] export = system [savedsearches] owner = admin [governance] access = read : [ * ], write : [ * ] - Download the OpenJDK 17 package from a verified source and unpack it. For example:
CODE
tar -xzvf openjdk-17_linux-x64_bin.tar.gz - Copy the unpacked JDK contents into the
jdkcustom Splunk app:CODEcp -r <openjdk-directory>/* jdk/The resulting app structure:
CODEjdk/ ├── bin/ ← java, javac, etc. ├── conf/ ├── default/ │ └── app.conf ├── include/ ├── jmods/ ├── legal/ ├── lib/ ├── metadata/ │ └── default.meta └── release - Package the completed app into a tarball:
CODE
tar -czvf jdk.tgz jdkNote the file paths of the sub-app tarballs for use in the static cluster configuration file.
Map ITSI apps to the static cluster configuration file
Map the ITSI sub-app tarballs and the jdk.tgz app to the correct tiers in the static cluster configuration file.
-
Add the search head tier apps. List all ITSI sub-apps except SA-ITSI-Licensechecker, plus the
jdk.tgzapp, under the appropriate search head stanza.Example:
pod-smallwith ITSI. Deploys 2 standalone search heads (1 standard, 1 with ITSI):CODEstandalone: - name: itsi-sh apps: local: - "./jdk.tgz" - "./itsi.tgz" - "./DA-ITSI-APPSERVER.tgz" - "./DA-ITSI-DATABASE.tgz" - "./DA-ITSI-EUEM.tgz" - "./DA-ITSI-LB.tgz" - "./DA-ITSI-OS.tgz" - "./DA-ITSI-STORAGE.tgz" - "./DA-ITSI-VIRTUALIZATION.tgz" - "./DA-ITSI-WEBSERVER.tgz" - "./SA-IndexCreation.tgz" - "./SA-ITOA.tgz" - "./SA-ITSI-AI-Summarization.tgz" - "./SA-ITSI-AlertCorrelation.tgz" - "./SA-ITSI-AT-Recommendations.tgz" - "./SA-ITSI-ATAD.tgz" - "./SA-ITSI-CustomModuleViz.tgz" - "./SA-ITSI-DriftDetection.tgz" - "./SA-ITSI-MetricAD.tgz" - "./SA-UserAccess.tgz"Example:
pod-medium,pod-large, andpod-xlargewith ITSI. Deploys 2 SHCs (1 standard, 1 with ITSI):CODEsearchheadcluster: - name: itsi-shc apps: cluster: - "./jdk.tgz" - "./itsi.tgz" - "./DA-ITSI-APPSERVER.tgz" - "./DA-ITSI-DATABASE.tgz" - "./DA-ITSI-EUEM.tgz" - "./DA-ITSI-LB.tgz" - "./DA-ITSI-OS.tgz" - "./DA-ITSI-STORAGE.tgz" - "./DA-ITSI-VIRTUALIZATION.tgz" - "./DA-ITSI-WEBSERVER.tgz" - "./SA-IndexCreation.tgz" - "./SA-ITOA.tgz" - "./SA-ITSI-AI-Summarization.tgz" - "./SA-ITSI-AlertCorrelation.tgz" - "./SA-ITSI-AT-Recommendations.tgz" - "./SA-ITSI-ATAD.tgz" - "./SA-ITSI-CustomModuleViz.tgz" - "./SA-ITSI-DriftDetection.tgz" - "./SA-ITSI-MetricAD.tgz" - "./SA-UserAccess.tgz" -
Add the Cluster Manager apps. List SA-IndexCreation under the
clustermanager.apps.clusterscope:CODEclustermanager: apps: cluster: - "./SA-IndexCreation.tgz" -
Add the License Manager apps. List SA-ITSI-Licensechecker and SA-UserAccess under the
licensemanager.apps.localscope:CODElicensemanager: apps: local: - "./SA-ITSI-Licensechecker.tgz" - "./SA-UserAccess.tgz" -
Add the ITSI license. Specify the ITSI license file in the
licensesarray:CODElicenses: ["enterprise.lic", "itsi.lic"]
For details on configuring standalone search heads and search head clusters, see Static cluster configuration file reference.
Create indexes
You cannot create indexes through the Splunk UI in a POD environment. Instead, you must define them within a custom app.
Manage knowledge objects
The system handles knowledge objects differently based on their origin.
The system handles knowledge objects differently based on their origin.
- Non-Local App Content (/default): The installer copies this content from the bastion host to SeaweedFS. You can upgrade this content, but you cannot delete it.
- Local App Content (/local): Users create this content through the Splunk UI. The system replicates these objects among search heads (in a Search Head Cluster) and protects them from installer overwrites.
Note: The installer framework does not back up local content externally.
Manage Universal Forwarders
The Kubernetes Installer does not manage or interact with Splunk Universal Forwarders (UF).
Because Splunk Universal Forwarders (UF) typically exist outside the Kubernetes cluster boundary, they are managed independently from POD lifecycle operations. This includes setting up a secure S2S connection that allows forwarders to send data to the cluster.
Key considerations for UF management:
- Manual management: Use agent management (deployment server) on the bastion node or a third-party tool (such as Ansible) to manage forwarder configurations. See About agent management.
- Security requirements: Forwarders require specific security apps and TLS certificates to communicate with the cluster.
- Load balancing: Manually configure the outputs.conf server list with multiple worker node IPs or DNS names to ensure high availability.
For details on establishing secure S2S connections for Universal Forwarders, see Network routing and ingress for Splunk POD.
Use Federated Search in Splunk POD
Splunk POD supports Federated Search in standard mode, allowing you to run searches across multiple clusters.
Use Federated Search in standard mode to run searches across Splunk POD clusters or from a Splunk POD cluster to a remote deployment. No specific configuration changes to Splunk POD or the Splunk Kubernetes Installer are required to enable this feature.
Follow the Splunk documentation to configure Federated Search from the Splunk UI on the local deployment. Use the endpoint https://<any federated provider POD worker IP>:443. No configuration is required on the Splunk POD clusters acting as federated providers.
Federated Search limitations
- Because every Splunk POD cluster uses the same server names for indexers (for example,
splunk-idx-indexer-0), it is difficult to isolate search results for a specific cluster without using index filtering. - Default IP-based routing requires that Federated Search links use specific IP addresses. If a worker node goes offline or is replaced, you must manually re-establish the link to the cluster.
Monitor Splunk POD
Tools and ports used for monitoring Splunk Enterprise components and the POD environmemt.
For comprehensive monitoring of Splunk Enterprise components, including search heads, indexers, cluster manager, license manager, and so on, use the Splunk Monitoring Console. This is available on port 3443 of any worker node (https://<worker_node>:3443).
For more information, see About the Monitoring Console.
Splunk POD also provides access to Perses dashboards for Prometheus data, where you can view metrics related to the Kubernetes environment and non-Splunk services. Perses dashboards are available on port 3000 of any worker node (https://<worker_node>:3000). See Network routing and ingress for Splunk POD.