Introduction
Kali ini saya akan membahas konfigurasi tentang sidecar yang dimana saya melakukan setup POD atau container ini dikarenakan kebutuhan atau by study case, dan ini mungkin salah stau judul dan percobaan yang tepat “How to use Kubernetes Sidecar Container with NSQ”
Study case : nsq dibagi menjadi 3 yaitu nsqlookupd, nsqd & nsqadmin, yang dimana bagian itu terpisah atau masing-masing POD nya, disini kita mencoba untuk menyatukan nsqlookupd & nsqd.
Sebelum kesana kita perlu pahami terlebih dahulu tentang NSQ , message platform di sini https://nsq.io/

Hal Yang perlu disiapkan:
- Cluster Kube
Langkah-langkah membuat helmchart saya bagi menjadi 2 stage sebagai berikut :
Step 1 – Create manifests
Yang pertama kita lakukan adalah menyiapkan file manifests, karena imagenya opensource kita hanya tinggal menyesuaikan arguments & port saja sbb

- deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nsq-service
namespace: test
labels:
app: nsq-service
spec:
replicas: 1
selector:
matchLabels:
app: nsq-service
template:
metadata:
labels:
app: nsq-service
spec:
volumes:
- name: share-logs
emptyDir: {}
containers:
- name: nsqlookupd
image: nsqio/nsq:latest
command: ["/bin/sh"]
args: ["-c", "/nsqlookupd -verbose"]
volumeMounts:
- name: share-logs
mountPath: /etc/log
ports:
- containerPort: 4160
name: tcp-nsqlookupd
- containerPort: 4161
name: http-nsqlookupd
imagePullPolicy: Always
- name: nsqd
image: nsqio/nsq:latest
command: ["/bin/sh"]
args: ["-c", "/nsqd --lookupd-tcp-address=nsq-service.test.svc.cluster.local:4160 --broadcast-address=nsq-service.test.svc.cluster.local"]
volumeMounts:
- name: share-logs
mountPath: /etc/log
ports:
- containerPort: 4150
name: tcp-nsqd
- containerPort: 4151
name: http-nsqd
imagePullPolicy: Always
resources:
requests:
cpu: "30m"
memory: "64Mi"
limits:
cpu: "128m"
memory: "512Mi"
- Service.yaml
apiVersion: v1
kind: Service
metadata:
name: nsq-service
namespace: test
labels:
app: nsq-staging
spec:
selector:
app: nsq-staging
ports:
- name: http-nsqd
port: 4151
targetPort: 4151
- name: http-nsqlookupd
port: 4161
targetPort: 4161
- name: tcp-nsqd
port: 4150
targetPort: 4150
- name: tcp-nsqlookupd
port: 4160
targetPort: 4160
Step 2 – Apply & Check
Kemudian selanjutnya kita apply deployment & juga servicenya
kubectl apply -f name-file-nsq
Outputnya adalah POD kita mempunyai 2 container dengan metode sidecar dan servicenya mempunya 4 port dengan port yang sudah di sesuaikan seperti ini


Ciri khas sidecar adalah ada 2 tanda hijau dengan nama yang sudah di setup : nsqd & nsqlookupd
Selamat mencoba

Admin website igunawan.com, System Administrator, DevOps Engineer