Table of Contents | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Github
아래 예제들에 대한 전체 helm chart는 https://github.com/snetsystems/K8s-Objects/tree/master/helm-charts 에서 볼 수 있다.
Walkthrough overview
Code Block | ||
---|---|---|
| ||
[Telegraf] ---8086--> [InfluxDB] <---8086--- [CH Srv] <---443--- [External] /\ /\ 8086| | |9094 |2379 \/ \/ [Kapacitor] [ETCD Cluster] |
...
필자 생각에는 참고 삼아 배포하거나 show values
등의 명령을 사용하여 리서치할 용도가 아니라, 본인의 K8s에 배포를 목적으로 한다면, 위 1번이 버전을 따로 관리하기에도 편하고 charts 구조 및 내용을 탐색하기에도 편한 듯 하다.
캐바캐이니, 편한대로 하여도 좋으나, 여기서는 1번 방식으로 배포하도록 하겠다.
Values override
influxdata/influxdb
내부의 values를 상황에 맞게 override 하자.
...
따라서, 아래와 같이 upgrade
를 통해 influxdb_customoverride.yaml
의 내용을 적용하도록 하겠다.
Code Block | ||
---|---|---|
| ||
# helm upgrade -n helm-test influxdb-1688227557 -f influxdb_customoverride.yaml ./influxdb Release "influxdb-1688227557" has been upgraded. Happy Helming! NAME: influxdb-1688227557 LAST DEPLOYED: Mon Jul 3 13:50:43 2023 NAMESPACE: helm-test STATUS: deployed REVISION: 6 TEST SUITE: None NOTES: InfluxDB can be accessed via port 8086 on the following DNS name from within your cluster: http://influxdb-1688227557.helm-test:8086 You can connect to the remote instance with the influx CLI. To forward the API port to localhost:8086, run the following: kubectl port-forward --namespace helm-test $(kubectl get pods --namespace helm-test -l app=influxdb-1688227557 -o jsonpath='{ .items[0].metadata.name }') 8086:8086 You can also connect to the influx CLI from inside the container. To open a shell session in the InfluxDB pod, run the following: kubectl exec -i -t --namespace helm-test $(kubectl get pods --namespace helm-test -l app=influxdb-1688227557 -o jsonpath='{.items[0].metadata.name}') /bin/sh To view the logs for the InfluxDB pod, run the following: kubectl logs -f --namespace helm-test $(kubectl get pods --namespace helm-test -l app=influxdb-1688227557 -o jsonpath='{ .items[0].metadata.name }') [root@test-k8s-master-centos8 helm]# kubectl get svc -n helm-test NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE influxdb-1688227557 ClusterIP 10.97.73.25 10.20.2.235,10.20.2.236 8086/TCP,8088/TCP 36h nginx-1688100975 NodePort 10.106.11.197 <none> 80:30117/TCP 2d23h |
...
Code Block | ||
---|---|---|
| ||
# helm install -n helm-test -g -f etcd_override.yaml ./etcd NAME: etcd-1688819715 LAST DEPLOYED: Sat Jul 8 21:35:15 2023 NAMESPACE: helm-test STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: CHART NAME: etcd CHART VERSION: 9.0.2 APP VERSION: 3.5.9 ** Please be patient while the chart is being deployed ** etcd can be accessed via port 2379 on the following DNS name from within your cluster: etcd-1688819715.helm-test.svc.cluster.local To create a pod that you can use as a etcd client run the following command: kubectl run etcd-1688819715-client --restart='Never' --image docker.io/bitnami/etcd:3.5.9-debian-11-r18 --env ROOT_PASSWORD=$(kubectl get secret --namespace helm-test etcd-1688819715 -o jsonpath="{.data.etcd-root-password}" | base64 -d) --env ETCDCTL_ENDPOINTS="etcd-1688819715.helm-test.svc.cluster.local:2379" --namespace helm-test --command -- sleep infinity Then, you can set/get a key using the commands below: kubectl exec --namespace helm-test -it etcd-1688819715-client -- bash etcdctl --user root:$ROOT_PASSWORD put /message Hello etcdctl --user root:$ROOT_PASSWORD get /message To connect to your etcd server from outside the cluster execute the following commands: kubectl port-forward --namespace helm-test svc/etcd-1688819715 2379:2379 & echo "etcd URL: http://127.0.0.1:2379" * As rbac is enabled you should add the flag `--user root:$ETCD_ROOT_PASSWORD` to the etcdctl commands. Use the command below to export the password: export ETCD_ROOT_PASSWORD=$(kubectl get secret --namespace helm-test etcd-1688819715 -o jsonpath="{.data.etcd-root-password}" | base64 -d) |
Deploy CloudHub
위의 예제들과 기본적 개념은 유사하므로, https://github.com/snetsystems/K8s-Objects/tree/master/helm-charts 를 참고하도록 한다.