Helm despliega EFK

Helm implementa EFK
aquí, preste atención a las versiones de helm elasticsearch y kibana. Debe ser coherente
con los registros almacenados en / var / log / contenedores de cada nodo
[root @ k8s-master efk] # pwd
/ root / efk
[root @ k8s-master elasticsearch ] # kubectl crear espacio de nombres efkadd
warehouse
[root @ k8s-master efk] # helm repo agregar incubadora https://charts.helm.sh/incubator
Se ha agregado "incubadora" a sus repositorios

Implementar Elasticsearch
[root @ k8s-master efk] # helm search elasticsearch
NOMBRE GRÁFICO VERSIÓN APLICACIÓN VERSIÓN DESCRIPCIÓN
incubadora / elasticsearch 1.10.2 6.4.2 DESPRECADO Código abierto flexible y potente, distribuido ...
La kibana detrás también debe ser 6.4.2 Versión
[root @ k8s-master efk] # helm search incubator / kibana --version 0.14.8
No se encontraron resultados

添加 仓库
[root @ k8s-master efk] # helm repo agregar estable https://charts.helm.sh/stable
"estable" se ha agregado a sus repositorios
[root @ k8s-master elasticsearch] # helm búsqueda estable / kibana - -version 0.14.8
GRÁFICO DE NOMBRES VERSIÓN VERSIÓN DE
LA APLICACIÓN DESCRIPCIÓN stable / kibana 0.14.8 6.4.2 Kibana es un complemento de visualización de datos de código abierto para El ...
找到 相同 版本 的 kibana6.4.2

开始 安装
[root @ k8s-master efk] # helm fetch
incubator / elasticsearch [root @ k8s-master efk] # ls
elasticsearch-1.10.2.tgz
[root @ k8s-master efk] # tar -zxvf elasticsearch-1.10.2 .tgz
[root @ k8s-master efk] # cd elasticsearch
[root @ k8s-master elasticsearch] # ls
Chart.yaml ci README.md templates values.yaml

[root @ k8s-master elasticsearch] # vi values.yaml
修改 以下 内容 :
MINIMUM_MASTER_NODES: "1"
cliente:
réplicas: 1
maestro:
réplicas: 1
persistencia:
habilitado: falso
datos:
réplicas: 1
persistencia:
habilitado: falso

[root @ k8s-master elasticsearch] # vi values.yaml
Vea el archivo values.yaml y descubra que la imagen que debe extraer es docker.elastic.co/elasticsearch/elasticsearch-oss:6.4.2.
Helm despliega EFK

/ La raíz de todos los nodos abre la imagen docker.elastic.co/elasticsearch/elasticsearch-oss:6.4.2
[root @ k8s-master fluentd-elasticsearch] # cd / root
[root @ k8s-master ~] # pwd
/ root
[ root @ k8s-master ~] # docker pull docker.elastic.co/elasticsearch/elasticsearch-oss:6.4.2
[root @ k8s-master ~] # imágenes de docker
TAG DE
REPOSITORIO ID DE IMAGEN TAMAÑO CREADO docker.elastic.co/elasticsearch/ elasticsearch-oss 6.4.2 11e335c1a714 Hace 2 años 715MB

[root @ k8s-master elasticsearch] # helm install --name els1 --namespace = efk -f values.yaml incubator /
elasticsearch NOMBRE: els1
ÚLTIMA IMPLEMENTACIÓN: jueves 10 de diciembre 12:37:05 2020
NAMESPACE: efk
ESTADO: DESPLEGADO

RECURSOS:
==> v1 / ConfigMap
NOMBRE DATOS EDAD
els1-elasticsearch 4 0s

==> v1 / Pod (relacionado)
NOMBRE LISTO ESTADO REINICIE EDAD
els1-elasticsearch-client-59bcdcbfb7-ck8mb 0/1 Inicial: 0/1 0 0s
els1-elasticsearch-data-0 0/1 Inicial: 0/2 0 0s
els1-elasticsearch-master-0 0/1 Inicial: 0/2 0 0s

==> v1 /
NOMBRE DE SERVICIO TIPO CLUSTER-IP EXTERNAL-IP PORT (S) AGE
els1-elasticsearch-client ClusterIP 10.99.78.35 <ninguno> 9200 / TCP 0s
els1-elasticsearch-discovery ClusterIP Ninguno <ninguno> 9300 / TCP 0s

==> v1beta1 / Deployment
NAME READY UP-TO-DATE DISPONIBLE EDAD
els1-elasticsearch-client 0/1 1 0 0s

==> v1beta1 / StatefulSet
NAME READY AGE
els1-elasticsearch-data 0/1 0s
els1-elasticsearch-master 0/1 0s

NOTAS:
Se ha instalado el clúster de elasticsearch.


Tenga en cuenta que este gráfico ha quedado obsoleto y se ha movido a estable.
En el futuro, utilice la versión estable de este gráfico.


Se puede acceder a Elasticsearch:

  • Dentro de su clúster, en el siguiente nombre DNS en el puerto 9200:

    els1-elasticsearch-client.efk.svc

  • Desde fuera del clúster, ejecute estos comandos en el mismo shell:

    export POD_NAME = $ (kubectl get pods --namespace efk -l "app = elasticsearch, component = client, release = els1" -o jsonpath = "{. items [0] .metadata.name}")
    echo "Visite http: //127.0.0.1:9200 para usar
    Elasticsearch " kubectl port-forward --namespace efk $ POD_NAME 9200: 9200

[root @ k8s-master ~] # kubectl get pod -n efk
NOMBRE READY STATUS RESTARTS EDAD
els1-elasticsearch-client-59bcdcbfb7-ck8mb 1/1 Ejecutando 0 112s
els1-elasticsearch-data-0 1/1 Ejecutando 0 112s
els1- elasticsearch-master-0 1/1 En ejecución 0112s

[root @ k8s-master ~] # kubectl get svc -n efk
NOMBRE TIPO CLUSTER-IP EXTERNAL-IP PORT (S) AGE
els1-elasticsearch-client ClusterIP 10.99.78.35 <ninguno> 9200 / TCP 3m45s
els1-elasticsearch-discovery ClusterIP Ninguno <ninguno> 9300 / TCP 3m45s

[root @ k8s-master elasticsearch] # kubectl run cirror- $ RANDOM --rm -it --image = cirros - / bin / sh
kubectl run --generator = deployment / apps.v1 está DEPRECADO y se eliminará en un versión futura. Utilice kubectl run --generator = run-pod / v1 o kubectl create en su lugar.
Si no ve un símbolo del sistema, intente presionar Intro.
/ # curl 10.99.78.35:9200/_cat/nodes
10.244.0.73 5 97 22 2.33 2.29 1.50 di - els1-elasticsearch-data-0
10.244.0.74 16 97 16 2.33 2.29 1.50 mi * els1-elasticsearch-master-0
10.244. 0.72 16 97 31 2.33 2.29 1.50 i - els1-elasticsearch-client-59bcdcbfb7-ck8mb
/ # exit
Sesión finalizada, reanudar usando el comando 'kubectl attach cirror-14088-7f65bc86-6pjsz -c cirror-14088 -i -t' cuando el pod Esta corriendo
deployment.apps "cirror-14088" eliminado

La prueba anterior es exitosa.

部署 Fluentd
[root @ k8s-master elasticsearch] # cd ..
[root @ k8s-master efk] # helm fetch stable / fluentd-elasticsearch
[root @ k8s-master efk] # ls
elasticsearch elasticsearch-1.10.2.tgz fluentd- elasticsearch-2.0.7.tgz
[root @ k8s-master efk] # tar -zxvf fluentd-elasticsearch-2.0.7.tgz
[root @ k8s-master efk] # cd fluentd-elasticsearch

Cambiar la dirección de acceso de Elasticsearch

[root @ k8s-master fluentd-elasticsearch] # vi values.yaml elasticsearch
:
host: '10 .99.78.35 '

[root @ k8s-master fluentd-elasticsearch] # helm install --name flu1 --namespace = efk -f values.yaml stable / fluentd-elasticsearch
NOMBRE: flu1
ÚLTIMA IMPLEMENTACIÓN : Jue. 10 de diciembre 12:44:46 2020
NAMESPACE: efk
ESTADO: DESPLEGADO

RECURSOS:
==> v1 / ClusterRole
NOMBRE AGE
flu1-fluentd-elasticsearch 0s

==> v1 / ClusterRoleBinding
NOMBRE AGE
flu1-fluentd-elasticsearch 0s

==> v1 / ConfigMap
NOMBRE DATOS EDAD
flu1-fluentd-elasticsearch 6 1s

==> v1 / DaemonSet
NOMBRE DESEADO ACTUAL LISTO ACTUALIZADO DISPONIBLE SELECTOR DE
NODOS EDAD flu1-fluentd-elasticsearch 3 3 0 3 0 <ninguno> 0s

==> v1 / Pod (relacionado)
NOMBRE READY STATUS RESTARTS EDAD
flu1-fluentd-elasticsearch-4sdsd 0/1 ContainerCreating 0 0s
flu1-fluentd-elasticsearch-6478z 0/1 ContainerCreating 0 0s
flu1-fluentd-elasticsearch-jq4zt 0/1 ContainerCreating 0 0s

==> v1 / ServiceAccount
NOMBRE SECRETOS EDAD
flu1-fluentd-elasticsearch 1 1s

NOTAS:

  1. Para verificar que Fluentd se haya iniciado, ejecute:

    kubectl --namespace = efk get pods -l "app.kubernetes.io/name=fluentd-elasticsearch,app.kubernetes.io/instance=flu1"

ESTA APLICACIÓN CAPTURA TODA LA SALIDA DE LA CONSOLA Y LA ENVIA A elasticsearch. Todo lo que pueda identificarse,
incluidas cosas como direcciones IP, imágenes de contenedores y nombres de objetos, NO se anonimizará.

[root @ k8s-master fluentd-elasticsearch] # kubectl get pod -n efk
NOMBRE READY STATUS RESTARTS EDAD
els1-elasticsearch-client-5678fb458d-cnb9c 1/1 En ejecución 0 22m
els1-elasticsearch-data-0 1/1 En ejecución 0 22m
els1-elasticsearch-master-0 1/1 Corriendo 0 22m
flu1-fluentd-elasticsearch-crhrl 0/1 ImagePullBackOff 0 3m21s
flu1-fluentd-elasticsearch-mm2tk 0/1 ImagePullBackOff 0 3m21s
flu1-fluentd-elasticsearch-pcpmw 0/1 ImagePullBackOff 0 3 min 21 s

[root @ k8s-master fluentd-elasticsearch] # kubectl describe pod flu1-fluentd-elasticsearch-crhrl -n efk
Eventos:
Tipo Razón Antigüedad del mensaje


Normal Scheduled 2m54s default-Scheduler Asignó correctamente efk / flu1-fluentd-elasticsearch-crhrl a k8s-node2
Normal Pulling 40s (x4 over 2m47s) kubelet, k8s-node2 Pulling image "gcr.io/google-containers/fluentd-elasticsearch:v2 .3.2 "
Error de advertencia 20s (x4 sobre 2m32s) kubelet, k8s-node2 Error al extraer la imagen" gcr.io/google-containers/fluentd-elasticsearch:v2.3.2 ": error de rpc: código = Desconocido desc = Respuesta de error del demonio : Obtenga https://gcr.io/v2/ : net / http: solicitud cancelada mientras esperaba la conexión (Client.Timeout excedido mientras esperaba encabezados)
Advertencia Falló 20s (x4 sobre 2m32s) kubelet, k8s-node2 Error: ErrImagePull
Normal BackOff 8s (x5 sobre 2m31s) kubelet, k8s-node2 Retroceso tirando imagen "gcr.io/google-containers/fluentd-elasticsearch:v2.3.2 "
Advertencia fallida 8s (x5 durante 2m31s) kubelet, k8s-node2 Error: ImagePullBackOff

[root @ k8s-master fluentd-elasticsearch] # vi values.yaml
Compruebe el archivo values.yaml y busque fluentd-elasticsearch: v2.3.2.

Helm despliega EFK
Utilice *** para descargar gcr.io/google-containers/fluentd-elasticsearch:v2.3.2
docker pull gcr.io/google-containers/fluentd-elasticsearch:v2.3.2
y luego transferir a todos los nodos bajo / root, importar
[ root @ k8s-master fluentd-elasticsearch] # cd / root
[root @ k8s-master ~] # pwd
/ root
[root @ k8s-master ~] # docker load <fluentd-elasticsearch.tar
[root @ k8s-master ~] # docker images
ETIQUETA DE
REPOSITORIO ID DE IMAGEN TAMAÑO CREADO gcr.io/google-containers/fluentd-elasticsearch v2.3.2 c212b82d064e Hace 2 años 140 MB

[root @ k8s-master fluentd-elasticsearch] # cd / root / efk / fluentd-elasticsearch
eliminar el error anterior flu1
[root @ k8s-master fluentd-elasticsearch] # helm del --purge flu1

再次 创建
[root @ k8s-master fluentd-elasticsearch] # helm install --name flu1 --namespace = efk -f values.yaml stable / fluentd-elasticsearch
NOMBRE: flu1
ÚLTIMA DESPLIEGUE : Jue. 10 de diciembre 09:00:54 2020
NAMESPACE : efk
ESTADO: DESPLEGADO

RECURSOS:
==> v1 / ClusterRole
NOMBRE AGE
flu1-fluentd-elasticsearch 3s

==> v1 / ClusterRoleBinding
NOMBRE EDAD
flu1-fluentd-elasticsearch 3s

==> v1 / ConfigMap
NOMBRE DATOS EDAD
flu1-fluentd-elasticsearch 6 3s

==> v1 / DaemonSet
NOMBRE DESEADO ACTUAL LISTO ACTUALIZADO DISPONIBLE SELECTOR DE
NODOS EDAD flu1-fluentd-elasticsearch 3 3 0 3 0 <ninguno> 3s

==> v1 / Pod (relacionado)
NOMBRE LISTO ESTADO RESTARTS EDAD
flu1-fluentd-elasticsearch-6fh96 0/1 ContainerCreating 0 2s
flu1-fluentd-elasticsearch-cvs57 0/1 ContainerCreating 0 2s
flu1-fluentd-elasticsearch-ssw47 0/1 ContainerCreating 0 2s

==> v1 / ServiceAccount
NOMBRE SECRETOS EDAD
flu1-fluentd-elasticsearch 1 3s

NOTAS:

  1. Para verificar que Fluentd se haya iniciado, ejecute:

    kubectl --namespace = efk get pods -l "app.kubernetes.io/name=fluentd-elasticsearch,app.kubernetes.io/instance=flu1"

ESTA APLICACIÓN CAPTURA TODA LA SALIDA DE LA CONSOLA Y LA ENVIA A elasticsearch. Todo lo que pueda identificarse,
incluidas cosas como direcciones IP, imágenes de contenedores y nombres de objetos, NO se anonimizará.

[root @ k8s-master fluentd-elasticsearch] # kubectl get pod -n efk
NOMBRE READY STATUS RESTARTS EDAD
els1-elasticsearch-client-5678fb458d-cnb9c 1/1 En ejecución 0 15
h els1-elasticsearch-data-0 1/1 En ejecución 0 15 h
els1-elasticsearch-master-0 1/1 Corriendo 0 15h
flu1-fluentd-elasticsearch-6fh96 1/1 Corriendo 0 33s
flu1-fluentd-elasticsearch-cvs57 1/1 Corriendo 0 33s
flu1-fluentd-elasticsearch-ssw47 1/1 Corriendo 0 33 s

部署 kibana
[root @ k8s-master elasticsearch] # cd ..
[root @ k8s-master efk] # helm fetch stable / kibana --version 0.14.8
[root @ k8s-master efk] # ls elasticsearch elasticsearch
-1.10.2 .tgz fluentd-elasticsearch fluentd-elasticsearch-2.0.7.tgz kibana-0.14.8.tgz
[root @ k8s-master efk] # tar -zxvf kibana-0.14.8.tgz
[root @ k8s-master efk] # cd kibana
[root @ k8s-master kibana] # archivos vi values.yaml
修改 如下
:
kibana.yml: elasticsearch.hosts
: http://10.99.78.35:9200

[root @ k8s-master kibana] # vi values.yaml
Ver
Helm despliega EFK
todos los nodos de la imagen requerida Extraer docker.elastic.co/kibana/kibana-oss:6.7.0
[root @ k8s-master kibana] # docker pull docker.elastic .co / kibana / kibana-oss: 6.7.0

[root @ k8s-master kibana] # imágenes de docker
ETIQUETA DE
REPOSITORIO ID DE IMAGEN TAMAÑO CREADO docker.elastic.co/kibana/kibana-oss 6.7.0 c50123b45502 Hace 20 meses 453MB

[root @ k8s-master kibana] # helm install --name kib1 --namespace = efk -f values.yaml stable / kibana --version 0.14.8
NOMBRE: kib1
ÚLTIMA DESPLIEGUE : Jue 10 de diciembre 12:52:08 2020
NAMESPACE : efk
ESTADO: DESPLEGADO

RECURSOS:
==> v1 / ConfigMap
NOMBRE DATOS EDAD
kib1-kibana 1 1s

==> v1 / Pod (relacionado)
NOMBRE LISTO ESTADO REINICIE EDAD
kib1-kibana-6c49f68cf-ttd96 0/1 ContainerCreating 0 1s

==> v1 /
NOMBRE DE SERVICIO TIPO CLUSTER-IP EXTERNAL-IP PORT (S) AGE
kib1-kibana ClusterIP 10.111.158.168 <ninguno> 443 / TCP 1s

==> v1beta1 / Implementación
NOMBRE LISTO
ACTUALIZADO EDAD DISPONIBLE kib1-kibana 0/1 1 0 1s

NOTAS:
Para verificar que kib1-kibana se ha iniciado, ejecute:

kubectl --namespace = efk get pods -l "app = kibana"

Se puede acceder a Kibana:

  • Desde fuera del clúster, ejecute estos comandos en el mismo shell:

    export POD_NAME = $ (kubectl get pods --namespace efk -l "app = kibana, release = kib1" -o jsonpath = "{. items [0] .metadata.name}")
    echo "Visite http: //127.0. 0.1: 5601 para usar Kibana "
    kubectl port-forward --namespace efk $ POD_NAME 5601: 5601

[root @ k8s-master kibana] # kubectl get pod -n efk
NOMBRE LISTO ESTADO REINICIE EDAD
els1-elasticsearch-client-59bcdcbfb7-ck8mb 1/1 Ejecutando 0 16m
els1-elasticsearch-data-0 1/1 Ejecutando 0 16m
els1- elasticsearch-master-0 1/1 Corriendo 0 16m
flu1-fluentd-elasticsearch-4sdsd 1/1 Corriendo 0 8m47s
flu1-fluentd-elasticsearch-6478z 1/1 Corriendo 0 8m47s
flu1-fluentd-elasticsearch-jq4zt 1/1 Corriendo 0 8m47s
kib1-kibana-6c49f68cf-ttd96 1/1 En ejecución 0 84 s

[root @ k8s-master ~] # kubectl get svc -n efk
NOMBRE TIPO CLUSTER-IP EXTERNAL-IP PORT (S) AGE
els1-elasticsearch-client ClusterIP 10.99.78.35 <ninguno> 9200 / TCP 16m
els1-elasticsearch-discovery ClusterIP Ninguno <ninguno> 9300 / TCP 16m
kib1-kibana ClusterIP 10.111.158.168 <ninguno> 443 / TCP 65s

[root @ k8s-master kibana] # kubectl edit svc kib1-kibana -n efk tipo de
reparación
: NodePort

[root @ k8s-master ~] # kubectl get svc -n efk
NOMBRE TIPO CLUSTER-IP EXTERNAL-IP PORT (S) AGE
els1-elasticsearch-client ClusterIP 10.99.78.35 <ninguno> 9200 / TCP 17m
els1-elasticsearch-discovery ClusterIP Ninguno <ninguno> 9300 / TCP 17m
kib1-kibana NodePort 10.111.158.168 <ninguno> 443: 31676 / TCP 2m5s

Visite http://10.10.21.8:31676

Supongo que te gusta

Origin blog.51cto.com/2290153/2562309
Recomendado
Clasificación