Closed oomichi closed 3 years ago
https://blog.ptrk.io/how-to-deploy-an-efk-stack-to-kubernetes/ がすばらしい。
方法
git clone https://github.com/pires/kubernetes-elasticsearch-cluster
cd kubernetes-elasticsearch-cluster/
kubectl create namespace logging
kubectl -n logging create -f es-discovery-svc.yaml
kubectl -n logging create -f es-svc.yaml
kubectl -n logging create -f es-master.yaml kubectl -n logging rollout status -f es-master.yaml
kubectl -n logging create -f es-ingest-svc.yaml kubectl -n logging create -f es-ingest.yaml kubectl -n logging rollout status -f es-ingest.yaml
kubectl -n logging create -f es-data.yaml kubectl -n logging rollout status -f es-data.yaml
- Fluentdのデプロイ
git clone https://github.com/fluent/fluentd-kubernetes-daemonset cd fluentd-kubernetes-daemonset/
Elasticsearchに合わせて設定変更
--- a/fluentd-daemonset-elasticsearch-rbac.yaml +++ b/fluentd-daemonset-elasticsearch-rbac.yaml @@ -3,14 +3,14 @@ apiVersion: v1 kind: ServiceAccount metadata: name: fluentd
namespace: logging
apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRole metadata: name: fluentd
apiVersion: extensions/v1beta1 kind: DaemonSet metadata: name: fluentd
デプロイ
kubectl create -f fluentd-daemonset-elasticsearch-rbac.yaml
Kibana のデプロイ
$ cat kibana.yaml apiVersion: apps/v1 kind: Deployment metadata: namespace: logging name: kibana labels: component: kibana spec: replicas: 1 selector: matchLabels: component: kibana template: metadata: labels: component: kibana spec: containers:
サービス
$ cat svc.yaml apiVersion: v1 kind: Service metadata: namespace: logging name: kibana labels: component: kibana spec: selector: component: kibana ports:
k8s v1.12 は https://github.com/oomichi/try-kubernetes/issues/55 の問題があるので v1.11.3 を使う。
ingress を使うには ingress controller の設定が必要。ingress-nginx を使う。
必須手順と書かれた方法を実施。
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/mandatory.yaml
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/baremetal/service-nodeport.yaml
結構な回数 ingress-nginx controller が再起動している。
NAMESPACE NAME READY STATUS RESTARTS AGE
ingress-nginx default-http-backend-7db7c45b69-z6bkg 1/1 Running 163 3d
ingress-nginx nginx-ingress-controller-6bd7c597cb-ntbrm 1/1 Running 636 3d
また、es-data が CrashLoopBackOff している。
logging es-data-b479bcbd-8ngqk 0/1 CrashLoopBackOff 1339 4d
logging es-data-b479bcbd-zcnkf 0/1 CrashLoopBackOff 1331 4d
Elasticsearch, Fluentd, Kibana間の設定をどうするのか一般的な方法を調べる。