Initial Commit
This commit is contained in:
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
*.tfstate*
|
||||
.terraform/
|
||||
|
||||
|
||||
97
cluster/podman/kafka-configmap.yml
Normal file
97
cluster/podman/kafka-configmap.yml
Normal file
@@ -0,0 +1,97 @@
|
||||
---
|
||||
# https://kubernetes.io/docs/concepts/configuration/configmap/
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: controller-env
|
||||
namespace: default
|
||||
data:
|
||||
KAFKA_PROCESS_ROLES: 'controller'
|
||||
KAFKA_CONTROLLER_QUORUM_VOTERS: '1@k1:9093,2@k2:9093,3@k3:9093'
|
||||
KAFKA_INTER_BROKER_LISTENER_NAME: 'PLAINTEXT'
|
||||
KAFKA_CONTROLLER_LISTENER_NAMES: 'CONTROLLER'
|
||||
KAFKA_LISTENERS: 'CONTROLLER://:9093'
|
||||
CLUSTER_ID: '4L6g3nShT-eMCtK--X86sw'
|
||||
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
|
||||
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
|
||||
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
|
||||
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
|
||||
KAFKA_LOG_DIRS: '/tmp/kraft-combined-logs'
|
||||
---
|
||||
# https://kubernetes.io/docs/concepts/configuration/configmap/
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: broker-env
|
||||
namespace: default
|
||||
data:
|
||||
KAFKA_PROCESS_ROLES: 'broker'
|
||||
KAFKA_CONTROLLER_QUORUM_VOTERS: '1@k1:9093,2@k2:9093,3@k3:9093'
|
||||
KAFKA_LISTENERS: 'PLAINTEXT://:49092,PLAINTEXT_HOST://:9092'
|
||||
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: 'CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT'
|
||||
KAFKA_INTER_BROKER_LISTENER_NAME: 'PLAINTEXT'
|
||||
KAFKA_CONTROLLER_LISTENER_NAMES: 'CONTROLLER'
|
||||
CLUSTER_ID: '4L6g3nShT-eMCtK--X86sw'
|
||||
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
|
||||
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
|
||||
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
|
||||
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
|
||||
KAFKA_LOG_DIRS: '/tmp/kraft-combined-logs'
|
||||
---
|
||||
# https://kubernetes.io/docs/concepts/configuration/configmap/
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: controller-1
|
||||
namespace: default
|
||||
data:
|
||||
KAFKA_NODE_ID: 1
|
||||
---
|
||||
# https://kubernetes.io/docs/concepts/configuration/configmap/
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: controller-2
|
||||
namespace: default
|
||||
data:
|
||||
KAFKA_NODE_ID: 2
|
||||
---
|
||||
# https://kubernetes.io/docs/concepts/configuration/configmap/
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: controller-3
|
||||
namespace: default
|
||||
data:
|
||||
KAFKA_NODE_ID: 3
|
||||
---
|
||||
# https://kubernetes.io/docs/concepts/configuration/configmap/
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: broker-1
|
||||
namespace: default
|
||||
data:
|
||||
KAFKA_NODE_ID: 4
|
||||
KAFKA_ADVERTISED_LISTENERS: 'PLAINTEXT://k1:49092,PLAINTEXT_HOST://192.168.178.61:19092'
|
||||
---
|
||||
# https://kubernetes.io/docs/concepts/configuration/configmap/
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: broker-2
|
||||
namespace: default
|
||||
data:
|
||||
KAFKA_NODE_ID: 5
|
||||
KAFKA_ADVERTISED_LISTENERS: 'PLAINTEXT://k2:49092,PLAINTEXT_HOST://192.168.178.61:29092'
|
||||
---
|
||||
# https://kubernetes.io/docs/concepts/configuration/configmap/
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: broker-3
|
||||
namespace: default
|
||||
data:
|
||||
KAFKA_NODE_ID: 6
|
||||
KAFKA_ADVERTISED_LISTENERS: 'PLAINTEXT://k3:49092,PLAINTEXT_HOST://192.168.178.61:39092'
|
||||
|
||||
8
cluster/podman/kafka-ctl-config.yml
Normal file
8
cluster/podman/kafka-ctl-config.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
contexts:
|
||||
default:
|
||||
brokers:
|
||||
- k1:9092
|
||||
- k2:9092
|
||||
- k3:9092
|
||||
current-context: default
|
||||
129
cluster/podman/kafka-kube.yml
Normal file
129
cluster/podman/kafka-kube.yml
Normal file
@@ -0,0 +1,129 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: k1
|
||||
|
||||
spec:
|
||||
containers:
|
||||
- name: controller
|
||||
image: apache/kafka:latest
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: controller-env
|
||||
- configMapRef:
|
||||
name: controller-1
|
||||
securityContext:
|
||||
capabilities:
|
||||
add:
|
||||
- NET_RAW
|
||||
- name: broker
|
||||
image: apache/kafka:latest
|
||||
ports:
|
||||
- containerPort: 9092
|
||||
hostPort: 19092
|
||||
protocol: TCP
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: broker-env
|
||||
- configMapRef:
|
||||
name: broker-1
|
||||
securityContext:
|
||||
capabilities:
|
||||
add:
|
||||
- NET_RAW
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: k2
|
||||
spec:
|
||||
containers:
|
||||
- name: controller
|
||||
image: apache/kafka:latest
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: controller-env
|
||||
- configMapRef:
|
||||
name: controller-2
|
||||
securityContext:
|
||||
capabilities:
|
||||
add:
|
||||
- NET_RAW
|
||||
- name: broker
|
||||
image: apache/kafka:latest
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: broker-env
|
||||
- configMapRef:
|
||||
name: broker-2
|
||||
ports:
|
||||
- containerPort: 9092
|
||||
hostPort: 29092
|
||||
protocol: TCP
|
||||
securityContext:
|
||||
capabilities:
|
||||
add:
|
||||
- NET_RAW
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: k3
|
||||
spec:
|
||||
containers:
|
||||
- name: controller
|
||||
image: apache/kafka:latest
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: controller-env
|
||||
- configMapRef:
|
||||
name: controller-3
|
||||
securityContext:
|
||||
capabilities:
|
||||
add:
|
||||
- NET_RAW
|
||||
- name: broker
|
||||
image: apache/kafka:latest
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: broker-env
|
||||
- configMapRef:
|
||||
name: broker-3
|
||||
ports:
|
||||
- containerPort: 9092
|
||||
hostPort: 39092
|
||||
protocol: TCP
|
||||
securityContext:
|
||||
capabilities:
|
||||
add:
|
||||
- NET_RAW
|
||||
---
|
||||
# https://kubernetes.io/docs/concepts/workloads/pods/
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: "goflow"
|
||||
spec:
|
||||
containers:
|
||||
- name: collector
|
||||
image: "docker.io/netsampler/goflow2:latest"
|
||||
# args: ['-transport=file', '-transport.file.sep=', '-format=json']
|
||||
args: # ['-transport=kafka', '-transport.file.sep=', '-format=json']
|
||||
- "-transport=kafka"
|
||||
- "-transport.kafka.brokers=k1:9092,k2:9092,k3:9092"
|
||||
- "-format=json"
|
||||
resources:
|
||||
limits:
|
||||
cpu: 200m
|
||||
memory: 500Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 200Mi
|
||||
ports:
|
||||
- containerPort: 2025
|
||||
hostPort: 2025
|
||||
protocol: UDP
|
||||
restartPolicy: Always
|
||||
---
|
||||
|
||||
23
cluster/terraform/.terraform.lock.hcl
generated
Normal file
23
cluster/terraform/.terraform.lock.hcl
generated
Normal file
@@ -0,0 +1,23 @@
|
||||
# This file is maintained automatically by "terraform init".
|
||||
# Manual edits may be lost in future updates.
|
||||
|
||||
provider "registry.terraform.io/mongey/kafka" {
|
||||
version = "0.7.1"
|
||||
constraints = "0.7.1"
|
||||
hashes = [
|
||||
"h1:Mg9O6C8oN+FlRdnJTf7Rg5C8/go07nqspXfWugWi++U=",
|
||||
"zh:2032d7625d7ce6f00d89a479db715468dc127a8347160ebdad8bcf433235254b",
|
||||
"zh:4e7bbe0759ebb79337b26399d062dcece727503a738f63af255509a159079da3",
|
||||
"zh:525af3406910de7cb989676eb87552ce729eaedbd771ae8d04d619f7a930fc63",
|
||||
"zh:596625aadc2103f27f89be31f06d237740ca713c0a93a0c1144f6fd026f5c084",
|
||||
"zh:60bd31f525e039b64c4666ea9a428e2f3c0e06fc41cb371bb3a3f33b5fbfdad1",
|
||||
"zh:63bee7b312208b36698025112af72172cc420f90ff884d860602b0eca3e9e9a0",
|
||||
"zh:671cec0d716b8fb5092046575657d8fedac6bf9015f18b5f6b03c2ae26226862",
|
||||
"zh:7b203eabeadf1c9459d8c86e7a7bdee5a5d8d1b52a1059cb7f768b39e129cfb2",
|
||||
"zh:7d9211c4dbfa003fe583a662b2ad143c3550d23c8ad85024ec1e5e2bc8e1485c",
|
||||
"zh:a60c2266b448dd7d4303eabdefdf97a86b2a32a3f5a45b63a91edff2c1caf659",
|
||||
"zh:c995180e7b7e6ef048c41609cd03abcf9691da0d22aa5b7c4a032d588ca67c6c",
|
||||
"zh:e73314cda592cc5dafde17d3e88a2270502f2c43d32fd3f74e61820af3efa1fa",
|
||||
"zh:ff39bd48e880d609c43cf766b928b57e1c1acc359c9f6837ddfc893e0b87a103",
|
||||
]
|
||||
}
|
||||
19
cluster/terraform/main.tf
Normal file
19
cluster/terraform/main.tf
Normal file
@@ -0,0 +1,19 @@
|
||||
terraform {
|
||||
required_providers {
|
||||
kafka = {
|
||||
source = "Mongey/kafka"
|
||||
version = "0.7.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
provider "kafka" {
|
||||
bootstrap_servers = ["localhost:19092", "localhost:29092", "localhost:39092"]
|
||||
tls_enabled = false
|
||||
}
|
||||
|
||||
resource "kafka_topic" "logs" {
|
||||
name = "flowdata"
|
||||
replication_factor = 3
|
||||
partitions = 10
|
||||
}
|
||||
22
single/kafka-configmap.yml
Normal file
22
single/kafka-configmap.yml
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
# https://kubernetes.io/docs/concepts/configuration/configmap/
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: kafka-env
|
||||
namespace: default
|
||||
data:
|
||||
KAFKA_NODE_ID: 1
|
||||
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: 'CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT'
|
||||
KAFKA_ADVERTISED_LISTENERS: 'PLAINTEXT_HOST://localhost:9092,PLAINTEXT://broker:19092'
|
||||
KAFKA_PROCESS_ROLES: 'broker,controller'
|
||||
KAFKA_CONTROLLER_QUORUM_VOTERS: '1@broker:29093'
|
||||
KAFKA_LISTENERS: 'CONTROLLER://:29093,PLAINTEXT_HOST://:9092,PLAINTEXT://:19092'
|
||||
KAFKA_INTER_BROKER_LISTENER_NAME: 'PLAINTEXT'
|
||||
KAFKA_CONTROLLER_LISTENER_NAMES: 'CONTROLLER'
|
||||
CLUSTER_ID: '4L6g3nShT-eMCtK--X86sw'
|
||||
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
|
||||
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
|
||||
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
|
||||
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
|
||||
KAFKA_LOG_DIRS: '/tmp/kraft-combined-logs'
|
||||
16
single/kafka-kube.yml
Normal file
16
single/kafka-kube.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: goflow
|
||||
|
||||
spec:
|
||||
containers:
|
||||
- name: broker
|
||||
image: apache/kafka:latest
|
||||
ports:
|
||||
- containerPort: 9092
|
||||
hostPort: 9092
|
||||
protocol: TCP
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: kafka-env
|
||||
Reference in New Issue
Block a user