Resumen de la entrevista del ingeniero de operación y mantenimiento (con respuestas)

Resumen de la entrevista del ingeniero de operación y mantenimiento

Enlace original: https://www.cuiliangblog.cn/detail/article/2

uno, linux

1. Proceso de inicio del sistema Linux

  • Paso 1: POST, cargar BIOS
  • Paso 2: Lea el MBR
  • Paso 3: menú de arranque grub del cargador de arranque
  • Paso 4: Cargue el kernel kernel
  • Paso 5: el proceso de inicio establece el nivel de ejecución de acuerdo con la carpeta inittab
  • Paso 6: El proceso de inicio ejecuta rc.sysinit
  • Paso 7: Inicie el módulo del kernel
  • Paso 8: Ejecute programas de script en diferentes niveles de ejecución
  • Paso 9: Ejecute /etc/rc.d/rc.lo

2. tipo de archivo de Linux

atributos de archivo Tipo de archivo
- Archivos regulares, es decir, archivo
d archivo de directorio
b dispositivo de bloque es un archivo de dispositivo de bloque, como un disco duro; admite acceso aleatorio en unidades de bloques
C dispositivo de caracteres es un archivo de dispositivo de caracteres, como un teclado que admite acceso lineal en unidades de caracteres
yo enlace simbólico es un archivo de enlace simbólico, también conocido como archivo de enlace suave
pag tubería Archivo de tubería con nombre
s Socket es un archivo de socket, que se utiliza para la comunicación entre dos procesos

3. ¿Cómo agregan centos6 y 7 el programa instalado desde el código fuente al inicio automático del arranque?

  • Método general: edite el archivo /etc/rc.d/rc.local y agregue el comando de inicio de servicio al final del archivo
  • centos6: ①Ingrese al directorio /etc/rc.d/init.d, ②Cree un nuevo script de inicio de servicio, especifique el parámetro chkconfig en el script, ③Agregue permiso de ejecución, ④Ejecute chkconfig --add para agregar el servicio para que se inicie automáticamente
  • centos7: ①Ingrese al directorio /usr/lib/systemd/system, ②Cree un nuevo archivo de servicio personalizado, que contiene la configuración relacionada con [Unidad] [Servicio] [Instalar], y luego agregue el permiso de ejecución, ③Ejecute systemctl enable service name

4. Describa brevemente lvm, ¿cómo expandir la partición / usando lvm?

  • Función: Puede administrar dinámicamente el disco. Cambiar el tamaño dinámicamente a pedido
  • concepto:

①PV - Volumen físico: El volumen físico se encuentra en la parte inferior de la gestión de volumen lógico. Puede ser una partición en el disco duro físico real, o el disco duro físico completo, o un dispositivo raid.
②VG - Grupo de volúmenes: El grupo de volúmenes se establece en el volumen físico, y un grupo de volúmenes debe incluir al menos un volumen físico. Una vez establecido el grupo de volúmenes, el volumen físico se puede agregar dinámicamente al grupo de volúmenes. Un proyecto de sistema de gestión de volúmenes lógicos puede tener solo un grupo de volúmenes o varios grupos de volúmenes.
③LV - Volumen lógico: un volumen lógico se construye sobre un grupo de volúmenes, y el espacio no asignado en el grupo de volúmenes se puede usar para crear un nuevo volumen lógico. Después de crear el volumen lógico, el espacio se puede expandir y reducir dinámicamente. Varios volúmenes lógicos del sistema pueden pertenecer al mismo grupo de volúmenes oa diferentes grupos de volúmenes.

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo de enlace antirrobo, se recomienda guardar la imagen y cargarla directamente (img-uK8g79zl-1685248088362) (https://api.cuiliangblog.cn/v1/public/imgProxy/?url=https://cdn.nlark.com/yuque/0/2020/jpeg/2308212/16061 79 298183-d171b82b-46b7-4d7c-9cd6-08942e923776.jpeg#align=left&display=inline&height=360&margin=%5Bobject%20Object%5D&name=SAVE_20201124_085444.jpg&originHeight=360&originWidth =6 00&size=59325&status=done&style=none&width=600)]

  • Pasos para expandir la partición /:

①Agregue un disco
②Use el comando fdisk para particionar el disco recién agregado
③Después de completar la partición, cambie el tipo de partición a lvm
④Use pvcreate para crear un volumen físico
⑤Use el comando vgextend para agregar la partición recién agregada a la partición del directorio raíz
⑥Use el comando lvextend para ampliar la capacidad
⑦Use xfs_growfs para ajustar el tamaño de la partición del volumen

5. ¿Por qué los resultados estadísticos de du y df son inconsistentes?

  • Después de eliminar una gran cantidad de archivos eliminados por el usuario, ya no están visibles en el directorio del sistema de archivos, por lo que no los volverá a contar.
  • Sin embargo, si todavía hay un proceso en ejecución que contiene el identificador del archivo eliminado en este momento, entonces el archivo no se eliminará del disco, la información en el superbloque de partición no se cambiará y df seguirá contando el archivo eliminado.
  • Puede usar el comando lsof para consultar archivos en estado eliminado.Los archivos eliminados se marcan como eliminados en el sistema. Si el sistema tiene una gran cantidad de archivos eliminados, los resultados estadísticos de du y df serán inconsistentes.

6. ¿Cómo actualizar el kernel?

  • método uno
# 添加第三方yum源进行下载安装。
Centos 6 YUM源:http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
Centos 7 YUM源:http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
# 先导入elrepo的key,然后安装elrepo的yum源:
rpm -import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
# 查看可用的内核相关包
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available 
yum -y --enablerepo=elrepo-kernel install
  • Método dos
# 通过下载kernel image的rpm包进行安装。
官方 Centos 6: http://elrepo.org/linux/kernel/el6/x86_64/RPMS/
官方 Centos 7: http://elrepo.org/linux/kernel/el7/x86_64/RPMS/
# 获取下载链接进行下载安装即可
wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-4.4.185-1.el7.elrepo.x86_64.rpm
rpm -ivh kernel-lt-4.4.185-1.el7.elrepo.x86_64.rp
# 查看默认启动顺序
[root@localhost ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (5.2.2-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (4.4.182-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.21.3.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.10.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-e34fb4f1527b4f2d9fc75b77c016b6e7) 7 (Core)
由上面可以看出新内核(4.12.4)目前位置在0,原来的内核(3.10.0)目前位置在1
# 设置默认启动
[root@localhost ~]# grub2-set-default 0  // 0代表当前第一行,也就是4.12.4版本
# 重启验证

7. ¿Cómo contar las diez direcciones IP principales en el registro de visitas de nginx?

awk '{array[$1]++}END{for (ip in array)print ip,array[ip]}' access.log |sort -k2 -rn|head

8. Cómo eliminar los registros de hace 30 días al final de .log en /var/log/?

find /var/log/ -type f -name .*.log -mtime 30|xargs rm -f

9. ¿Qué módulos tiene ansible? ¿Cuál es la función?

módulo Función
Copiar Copiar archivos al host
cron tarea cronometrada
buscar Copie el archivo controlado al local
archivo módulo de archivo
grupo Módulo de grupo de usuarios
usuario módulo de usuario
nombre de host módulo de nombre de host
guion módulo de secuencia de comandos
servicio módulo de inicio de servicio
dominio Módulo de comando de ejecución remota
caparazón Módulo de comando de ejecución remota, comando de uso avanzado
mmm Instalar módulo de grupo de paquetes
configuración Ver información del sistema host

10. ¿Por qué nginx es más rápido que apache?

  • nginx adopta el modelo epoll
  • Apache adopta el modelo select

11. ¿Cuál es la diferencia entre la carga de cuatro capas y la carga de siete capas?

  • Reenvío de capa 4 basado en IP+puerto
  • La capa siete es el equilibrio de carga basado en la información de la capa de la aplicación, como las URL.

12. ¿Cuáles son los modos de trabajo de lvs? ¿Cuál tiene el mayor rendimiento?

  • dr: modo de enrutamiento directo, LVS acepta la solicitud y el servidor que realmente brinda el servicio regresa al usuario directamente, sin pasar por LVS. (rendimiento más alto)
  • tun: modo túnel, el cliente envía paquetes VIP de acceso al servidor LVS. El servidor LVS vuelve a empaquetar el mensaje de solicitud y lo envía al servidor real backend. El servidor real back-end desempaqueta el mensaje de solicitud y procesa la solicitud después de confirmar que tiene VIP. Después de procesar la solicitud de datos, el servidor real backend responde directamente al cliente.
  • nat: La entrada y salida de los diarios de la red debe ser tramitada por LVS. LVS debe actuar como una puerta de entrada a RS. Cuando el paquete llega a LVS, LVS realiza la traducción de la dirección de destino (DNAT) para cambiar la IP de destino a la IP de RS. Después de que RS recibe el paquete, parece que el cliente lo envía directamente. Cuando RS termina de procesar y devuelve una respuesta, la IP de origen es la IP de RS y la IP de destino es la IP del cliente. En este momento, el paquete RS se transfiere a través de la puerta de enlace (LVS), y LVS realizará la traducción de la dirección de origen (SNAT) para cambiar la dirección de origen del paquete a VIP, de modo que el cliente vea el paquete como si fuera devuelto directamente por LVS. El cliente no puede percibir la existencia del backend RS.
  • Modo fullnat: El modo fullnat es similar al modo nat, pero la diferencia de nat es que el modo nat solo realiza dos traducciones de direcciones, pero el modo fullnat lo hace cuatro veces.

13. ¿Cuáles son las ventajas y desventajas de lvs nginx haproxy keeplived?

Enlace de referencia: https://blog.51cto.com/816885/2529993?source=dra

14. La siguiente dirección URL, el significado de cada parte

https://www.baidu.com/s?word=123&ie=utf-8

  • https: use el protocolo de encriptación https para acceder
  • www.baidu.com/s: dirección de solicitud
  • ?word&ie=utf-8: obtener parámetros de solicitud, múltiples parámetros y conexión

15. El significado de cada directorio de tomcat, ¿cómo modificar el puerto, cómo modificar el número de memoria?

  • Bin almacena comandos tomcat
  • conf almacena archivos de configuración de Tomcat
  • lib almacena los paquetes jar que deben cargarse cuando se ejecuta tomcat
  • log Hay registros generados por Tomcat ejecutándose
  • Archivos temporales generados durante la operación de temp
  • directorio de sitios de aplicaciones web
  • el trabajo almacena los archivos compilados cuando se ejecuta tomcat
  • conf/server.xml modificar número de puerto
  • bin/catalina.sh modificar memoria jvm

16. Cuando se usa el proxy inverso nginx, ¿cómo hacer que el backend obtenga la ip de la fuente de acceso real?

Agregue el siguiente contenido a la etapa de colocación de ubicación:
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

17. ¿Qué son los algoritmos de equilibrio de carga de nginx?

  • entrenamiento de rotación rr
  • entrenamiento con rotación ponderada
  • algoritmo de programación estática ip_hash
  • algoritmo de programación dinámica justa
  • url_hash URL hash
  • leat_conn el número mínimo de conexiones

18. ¿Cómo realizar la prueba de esfuerzo?

Por ejemplo: simule 10 usuarios e inicie un total de 100 solicitudes a la página de inicio de Baidu.
Comando de prueba: ab -n 100 -c 10 https://www.baidu.com/index.htm

19. ¿Cómo envía el comando curl solicitudes https? ¿Cómo ver la información del encabezado de respuesta? ¿Cómo enviar información de formulario de obtención y publicación?

  • Enviar solicitud https: curl --tlsv1 'https://www.bitstamp.net/api/v2/transactions/btcusd/'
  • información del encabezado de respuesta: curl -I
  • obtener: dirección de solicitud curl?key1=value1&key2=value2&key3=value3
  • publicación: curl -d “clave1=valor1&clave2=valor2&clave3=valor3”

dos, mysql

1. ¿Por qué el índice hace que la consulta sea más rápida? ¿Cuales son las desventajas?

El método predeterminado es escanear toda la tabla de acuerdo con las condiciones de búsqueda y agregar el conjunto de resultados de búsqueda cuando las condiciones coincidan. Si agregamos un índice a un campo determinado, la consulta primero irá a la lista de índices para ubicar la cantidad de filas con un valor específico a la vez, lo que reduce en gran medida la cantidad de filas cruzadas coincidentes, por lo que puede aumentar significativamente la velocidad de la consulta
.

  • Crear y mantener índices lleva tiempo, que aumenta con la cantidad de datos
  • El índice necesita ocupar espacio físico. Además del espacio de datos ocupado por la tabla de datos, cada índice también ocupa una cierta cantidad de espacio físico. Si es necesario establecer un índice agrupado, el espacio requerido será mayor
  • Al agregar, eliminar y modificar los datos en la tabla, el índice también debe mantenerse dinámicamente, lo que reduce la velocidad de mantenimiento de los números enteros.

2. Diferencia entre la combinación externa izquierda, la combinación externa derecha, la combinación interna y la combinación completa en la instrucción sql

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo de enlace antirrobo, se recomienda guardar la imagen y cargarla directamente (img-Ys3sFCpc-1685248088363) (https://api.cuiliangblog.cn/v1/public/imgProxy/?url=https://cdn.nlark.com/yuque/0/2020/png/2308212/16063826 86 237-38fe6856-8b0c-43f5-963d-001be4978d83.png#align=left&display=inline&height=760&margin=%5Bobject%20Object%5D&name=17-24-18-018.png&originHeight=760&originWidth=966&size=17404 0&estado=hecho&estilo=ninguno&ancho=966)]

3. Método de copia de seguridad de datos Mysql, ¿cómo restaurar? ¿Cuál es su estrategia de copia de seguridad?

  • copia de seguridad física completa

Copia de seguridad de todos los archivos de la base de datos: /var/lib/mysql/*
Copia de seguridad de todos los archivos binlog: /var/lib/mysql/mysql-bin.*Copia de seguridad
de los archivos de opciones: /etc/my.cnf

  • copia de seguridad lógica mysqldump

mysqldump -uroot -p --todas las bases de datos > /backup/mysqldump/all.db

  • Recuperación de copia de seguridad física

mv /var/lib/mysql /var/lib/mysql.old #Cambiar el nombre del directorio de datos original primero
cp -a /backups/mysql /var/lib

  • Recuperación de datos de copia de seguridad lógica

mysql > use db_name
mysql > source /backup/mysqldump/db_name.db

4. ¿Cómo configurar la sincronización maestro-esclavo de la base de datos y si encuentra inconsistencias de datos en el trabajo real? ¿Cómo resolver?

Configure una ID de servidor con un valor único para cada servidor

  • biblioteca principal

Abrir el registro binlog
Crear un usuario de replicación maestro-esclavo
Verificar el estado del maestro

  • de la biblioteca

cambiar el maestro para configurar la información de la biblioteca maestra
iniciar el esclavo iniciar la replicación

5. ¿Cuáles son las restricciones de mysql?

  • restricción no nula
  • restricción única
  • restricción de clave principal
  • Restricciones de clave externa

6. ¿Cuál es el propósito del registro binario (binlog)?

BINLOG registra el proceso de cambio de la base de datos. Por ejemplo, las operaciones DDL como la creación de una base de datos, la creación de una tabla, la modificación de una tabla y las operaciones DML relacionadas de la tabla de datos, estas operaciones harán que la base de datos cambie.Después de habilitar binlog, las operaciones que hacen que la base de datos cambie se registrarán en el archivo binario binlog en forma de "eventos" en orden cronológico.

7. ¿Qué son los motores de datos mysql?

  • myisam de uso común, innodb
  • la diferencia:

InnoDB admite transacciones y MyISAM no, lo cual es muy importante. La transacción es un método de procesamiento avanzado. Por ejemplo, en algunas adiciones, eliminaciones y cambios de columna, siempre que haya un error, se puede revertir y restaurar, pero MyISAM no; MyISAM es adecuado para aplicaciones basadas en consultas e inserciones, e InnoDB es adecuado para modificaciones frecuentes y aplicaciones que involucran alta seguridad; InnoDB admite claves externas, pero MyISAM no; MyISAM es el motor predeterminado e InnoDB debe especificarse; InnoDB no admite índices de tipo FULLTEXT; Por ejemplo , al seleccionar count() de la tabla, InnoDB necesita escanear toda la tabla para calcular cuántas filas hay, pero MyISAM solo necesita leer
la
cantidad
de filas
guardadas . Tenga en cuenta que MyISAM también necesita escanear toda la tabla cuando la instrucción count( ) contiene la condición where; para los campos autocrecientes, InnoDB debe contener un índice solo para este campo, pero se puede crear un índice conjunto con otros campos en la tabla MyISAM; al borrar toda la tabla, InnoDB elimina una fila a la vez, lo cual es muy lento. MyISAM reconstruirá la tabla; InnoDB admite bloqueos de fila (en algunos casos, toda la tabla está bloqueada, como la tabla de actualización configurada a = 1 donde el usuario como '% lee%'



8. ¿Cómo consultar la ruta de almacenamiento de la base de datos mysql?

mysql> show variables like 'datadir%';
+---------------+------------------------+
| Variable_name | Value                  |
+---------------+------------------------+
| datadir       | /usr/local/mysql/data/ |
+---------------+------------------------+
1 row in set (0.00 sec)

9. ¿Cuáles son las extensiones de los archivos de base de datos mysql? ¿Para qué sirve?

  • miisam

Archivo .frm: la definición de la tabla de protección
.myd: guarda los datos de la tabla
.myi: el archivo de índice de la tabla

  • innodb

.frm: guarda la definición de la tabla.ibd
: espacio de tabla

10. ¿Cómo modificar la contraseña del usuario de la base de datos?

  • antes de mysql8
set password for 用户名@localhost = password('新密码'); 
mysqladmin -u用户名 -p旧密码 password 新密码  
update user set password=password('123') where user='root' and host='localhost';
  • después de mysql8
# mysql8初始对密码要求高,简单的字符串不让改。先改成:MyNewPass@123;
alter user 'root'@'localhost' identified by 'MyNewPass@123';
# 降低密码难度
set global validate_password.policy=0;
set global validate_password.length=4;
# 修改成简易密码
alter user 'root'@'localhost'IDENTIFIED BY '1111';

11. ¿Cómo modificar los permisos de los usuarios? ¿Como revisar?

  • Autorización:
grant all on *.* to user@'%' identified by 'passwd'
  • Ver permisos
show grants for user@'%';

Tres, nosql

1. ¿Cuáles son los métodos de persistencia de datos de redis?

  • rdb
  • de

2. ¿Cuáles son las soluciones de clúster de redis?

  • Solución de clúster oficial
  • esquema proxy twemproxy
  • modo centinela

  • Fragmentación de clientes Codis

3. ¿Cómo realiza redis la copia de seguridad y la recuperación de datos?

  • respaldo

redis 127.0.0.1:6379> GUARDAR
para crear un archivo de copia de seguridad de redis también puede usar el comando BGSAVE, que se ejecuta en segundo plano.

  • reducción

Simplemente mueva el archivo de respaldo (dump.rdb) al directorio de instalación de redis e inicie el servicio
redis 127.0.0.1:6379> CONFIG GET dir

  1. "dir"
  2. “/usr/local/redis/bin”

4. ¿Cómo realiza MongoDB la copia de seguridad de los datos?

mongoexport / mongoimport
mongodump / mongorestore

5. ¿Por qué kafka es más rápido que redis rabbitmq?

https://www.zhihu.com/question/22480085

4. ventana acoplable

1. ¿Cuáles son las palabras clave en el dockerfile? ¿Cuál es el uso de?

[Error en la transferencia de imagen del enlace externo, el sitio de origen puede tener un mecanismo de enlace antirrobo, se recomienda guardar la imagen y cargarla directamente (img-UhHwOzJW-1685248088363) (https://api.cuiliangblog.cn/v1/public/imgProxy/?url=https://cdn.nlark.com/yuque/0/2020/jpeg/2308212/160638 1 &tamaño=142623&estado=hecho&estilo=ninguno&ancho=831)]

2. ¿Cómo reducir el volumen de imagen generado por dockerfile?

  • Trate de elegir una imagen básica del sistema que satisfaga las necesidades pero que sea relativamente pequeña.Por ejemplo, puede elegir la imagen debian:wheezy o debian:jessie la mayor parte del tiempo, que tiene un tamaño de menos de 100 megabytes;
  • Limpie los archivos temporales, como los archivos generados por la compilación y la memoria caché del paquete de instalación;
  • Especifique el número de versión exacto al instalar cada software y evite introducir dependencias innecesarias;
  • Desde el punto de vista de la seguridad, las aplicaciones deben usar bibliotecas y dependencias del sistema tanto como sea posible;
  • Si necesita configurar algunas variables de entorno especiales al instalar la aplicación, restaure los valores de las variables que no necesitan conservarse después de la instalación;

3. ¿Cuál es la diferencia entre CMD y ENTRYPOINT en dockerfile?

  • Las instrucciones CMD y ENTRYPOINT se utilizan para especificar el comando que se ejecutará cuando se inicie el contenedor.
  • Cuando el comando ENTRYPOINT se especifica como modo exec, los parámetros especificados por CMD se agregarán como parámetros a la lista de parámetros del comando especificado por ENTRYPOINT.

4. ¿Cuál es la diferencia entre COPIAR y AÑADIR en dockerfile?

  • Tanto el comando COPY como el comando ADD pueden copiar o agregar recursos en el host a la imagen del contenedor.
  • La diferencia es que los recursos que se pueden agregar desde una URL remota no se descomprimirán.
  • Si es un paquete comprimido local AGREGAR será descomprimido

5. ¿Cuáles son los componentes de la arquitectura cs de docker?

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo de enlace antirrobo, se recomienda guardar la imagen y cargarla directamente (img-FWxTdrGC-1685248088363)(https://api.cuiliangblog.cn/v1/public/imgProxy/?url=https://cdn.nlark.com/yuque/0/2020/jpeg/2308212/1606384 46 0582-73c1e1ac-e7ee-4da7-b810-d2310371eabe.jpeg#align=left&display=inline&height=934&margin=%5Bobject%20Object%5D&name=SAVE_20201126_175404.jpg&originHeight=934&originWidth=854&size =1 03298&estado=hecho&estilo=ninguno&ancho=854)]

6. ¿Cuáles son los tipos de redes docker?

  • modo anfitrión
  • modo contenedor
  • ningún modo
  • Modo Puente

7. ¿Cómo configurar el acceso remoto docker?

  • vim /lib/systemd/system/docker.servicio
  • Agregue la configuración después de ExecStart=, tenga en cuenta que primero debe ingresar un espacio y luego ingresar -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

8. ¿Cuál es la función del sistema de archivos conjunto CGroups del espacio de nombres central de docker?

  • espacio de nombres: aislamiento de recursos
  • cgroup: control de recursos
  • Sistema de archivos conjunto: admite la modificación del sistema de archivos como un envío para superponer capa por capa y, al mismo tiempo, se pueden montar diferentes directorios bajo el mismo sistema de archivos virtual

9. Relacionado con comandos: importe y exporte imágenes, ingrese contenedores, establezca políticas de reinicio de contenedores, vea variables de entorno de imágenes y vea el uso de recursos de contenedores

  • Importar imagen docker load -i xx.tar
  • Exportar imagen docker save -o xx.tar image_name
  • Ingrese el contenedor docker exec -it contenedor comando /bin/bash
  • Al configurar la estrategia de reinicio del contenedor para iniciar la opción --restart
  • Ver las variables de entorno del contenedor docker exec {containerID} env
  • Ver las estadísticas de la ventana acoplable de uso de recursos del contenedor test2

10. ¿Cuáles son las formas de construir imágenes?

  • archivo acoplable
  • El contenedor se envía como una imagen.

11. ¿Cuál es la diferencia entre la virtualización docker y vmware?

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo de enlace antirrobo, se recomienda guardar la imagen y cargarla directamente (img-DOphSxZ3-1685248088364) (https://api.cuiliangblog.cn/v1/public/imgProxy/?url=https://cdn.nlark.com/yuque/0/2020/jpeg/2308212/1606385 08 9235-6c5f9d7c-20f1-4cb9-abc2-cff8096e9492.jpeg#align=left&display=inline&height=465&margin=%5Bobject%20Object%5D&name=mmexport1606385080747.jpg&originHeight=465&originWidth=612&s ize=159635&status=done&style=none&width=612)]

5. kubernetes

1. ¿Cuáles son los componentes del clúster de k8s? ¿Cuál es la función?

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo de enlace antirrobo, se recomienda guardar la imagen y cargarla directamente (img-U4LLu7CJ-1685248088364)(https://api.cuiliangblog.cn/v1/public/imgProxy/?url=https://cdn.nlark.com/yuque/0/2020/png/2308212/16064473 73 367-f429cad4-676c-47cc-b238-57003cf13319.png#align=left&display=inline&height=573&margin=%5Bobject%20Object%5D&name=%E6%9C%AA%E5%91%BD%E5%90%8D%E5%9B%BE%E7%89%87.p ng &originHeight=573&originWidth=793&size=27098&status=done&style=none&width=793)]

2. Relacionado con los comandos de kubectl: ¿cómo modificar la cantidad de réplicas, cómo actualizar y revertir, cómo ver los detalles del pod y cómo ingresar a la interacción del pod?

  • Modificar el número de réplicas kubectl scale deployment redis --replicas=3
  • actualización activa kubectl establece implementaciones de imágenes myapp-deploy myapp=myapp:v2
  • revertir implementación de kubectl deshacer implementaciones myapp-deploy
  • Ver detalles del pod kubectl describe pods/
  • Ingrese la interacción del pod kubectl exec -it -c bash

3. ¿Cómo hacer una copia de seguridad de los datos de etcd?

  • etcdctl --endpoints=“https://192.168.32.129:2379,https://192.168.32.130:2379,192.168.32.128:2379” --cacert=/etc/kubernetes/cert/ca.pem --key=/etc/etcd/cert/etcd-key.pem --cert=/etc/etcd/cert/etc d.pem instantánea guardar snashot1.db
  • Instantánea guardada en snashot1.db

4. ¿Qué son los controladores k8s?

  • Conjunto de réplicas (ReplicaSet)
  • Despliegue
  • Conjunto con estado (Conjunto con estado)
  • Daemon集(DaemonSet)
  • Una tarea (Trabajo)
  • Tareas programadas (CronJob)
  • Conjunto con estado (StatefulSet)

5. ¿Qué son los recursos a nivel de clúster?

  • espacio de nombres
  • Nodo
  • Role
  • ClusterRole
  • Enlace de roles
  • ClusterRoleBinding

6. ¿Cuáles son los estados de los pods?

  • Pendiente
  • corriendo corriendo
  • Terminación normal exitosa
  • Parada anómala fallida
  • Estado desconocido desconocido

7. ¿Cuál es el proceso de creación de pods?

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo de enlace antirrobo, se recomienda guardar la imagen y cargarla directamente (img-SJ8ERoki-1685248088364) (https://api.cuiliangblog.cn/v1/public/imgProxy/?url=https://cdn.nlark.com/yuque/0/2020/jpeg/2308212/16063858 2 1622-f36232c8-15a5-46dc-a750-bfc90624b205.jpeg#align=left&display=inline&height=524&margin=%5Bobject%20Object%5D&name=SAVE_20201126_181652.jpg&originHeight=524&originWidth=7 9 0&size=92836&status=done&style=none&width=790)]

8. ¿Cuáles son las estrategias de reinicio de pod?

Hay tres estrategias de reinicio de Pod y el valor predeterminado es Siempre.

  • Siempre: cuando el contenedor falla, kubelet lo reiniciará automáticamente;
  • OnFailure: reiniciar cuando el contenedor termina y el código de salida no es 0;
  • Nunca: independientemente del estado, el kubelet no reiniciará el contenedor.

9. ¿Qué son las sondas de recursos?

  • ExecAction: la operación de ejecutar un comando en el contenedor y diagnosticarlo en función del código de estado devuelto se denomina detección de Exec. Un código de estado de 0 significa éxito, de lo contrario, se encuentra en un estado incorrecto.
  • TCPSocketAction: Diagnostica al intentar establecer una conexión con un determinado puerto TCP del contenedor. Si el puerto se puede abrir con éxito, es normal, de lo contrario no está en buen estado.
  • HTTPGetAction: diagnostique iniciando una solicitud HTTP GET a una ruta específica en un puerto específico de la dirección IP del contenedor.Si el código de respuesta es 2xx o 3xx, es exitoso; de lo contrario, es una falla.

10. ¿Para qué sirven las solicitudes y los límites?

  • El atributo "solicitudes" define el valor de disponibilidad garantizada de su solicitud, es decir, el contenedor no puede usar los recursos de estas cuotas, pero cuando se usa, debe asegurarse de que haya tantos recursos disponibles.
  • El atributo "límites" se utiliza para limitar el valor máximo disponible para el recurso, es decir, el límite estricto

11. ¿Qué contiene el archivo kubeconfig y cuál es su propósito?

Contiene parámetros de clúster (certificado de CA, dirección del servidor API), parámetros de cliente (certificado y clave privada generados anteriormente), información de contexto de clúster (nombre de clúster, nombre de usuario).

12. ¿Cuál es la diferencia entre rol y clusterrole, rolebinding y clusterrolebinding en RBAC?

  • El rol se puede definir en un espacio de nombres. Si desea cruzar espacios de nombres, puede crear ClusterRole. ClusterRole tiene las mismas capacidades de permisos y control de roles que Role. La diferencia es que ClusterRole está en el nivel de clúster.
  • RoleBinding se aplica a la autorización dentro de un espacio de nombres, mientras que ClusterRoleBinding se aplica a la autorización de todo el clúster.

13. ¿Por qué ipvs es más eficiente que iptables?

El modo IPVS e iptables también se basan en Netfilter, pero la tabla hash utilizada por ipvs y la lista de reglas utilizadas por iptables. Iptables está diseñado para cortafuegos. Cuantos más clústeres haya, más reglas de iptables habrá. Sin embargo, las reglas de iptables se combinan de arriba a abajo, por lo que la eficiencia es menor. Por lo tanto, cuando la cantidad de servicios alcance una cierta escala, aparecerá la ventaja de velocidad de la tabla de búsqueda de hash, lo que mejorará el rendimiento del servicio.

14. ¿Cuál es el propósito de sc pv pvc y cuál es todo el proceso de montaje y almacenamiento del contenedor?

  • PVC: los atributos del almacenamiento persistente que el Pod quiere usar, como el tamaño del almacenamiento, los permisos de lectura y escritura, etc.
  • PV: propiedades específicas del volumen, como el tipo de volumen, el directorio de montaje, la dirección del servidor de almacenamiento remoto, etc.
  • StorageClass: Actúa como una plantilla para PV. Además, solo los PV y los PVC que pertenecen a la misma clase de almacenamiento se pueden unir. Por supuesto, otra función importante de StorageClass es especificar el Provisioner (complemento de almacenamiento) de PV. En este momento, si su complemento de almacenamiento es compatible con el aprovisionamiento dinámico, Kubernetes puede crear automáticamente PV para usted.

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo de enlace antirrobo, se recomienda guardar la imagen y cargarla directamente (img-jPvvFsP6-1685248088364)(https://api.cuiliangblog.cn/v1/public/imgProxy/?url=https://cdn.nlark.com/yuque/0/2020/png/2308212/1606447 98 9005-23283e61-2776-456e-8827-25eebf8fb8a2.png#align=left&display=inline&height=679&margin=%5Bobject%20Object%5D&name=%E6%9C%AA%E5%91%BD%E5%90%8D%E5%9B%BE%E7%89% 87 .png&originHeight=679&originWidth=967&size=44551&status=done&style=none&width=967)]

15. ¿Cuál es la esencia del principio de ingreso de nginx?

  • El controlador de ingreso interactúa con la API de Kubernetes para detectar de forma dinámica los cambios en las reglas de ingreso en el clúster.
  • Luego léalo, de acuerdo con las reglas personalizadas, las reglas son para especificar qué nombre de dominio corresponde a qué servicio y generar una pieza de configuración nginx,
  • Luego escriba en el pod de nginx-ingress-controller, que
    ejecuta un servicio Nginx en el pod del controlador Ingress, y el controlador escribirá la configuración nginx generada en el archivo /etc/nginx.conf.
  • Luego recárguelo para que la configuración surta efecto. De esta forma, se pueden solucionar los problemas de subconfiguración y actualización dinámica de nombres de dominio.

16. Describir el proceso de comunicación entre Pods en diferentes nodos

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo de enlace antirrobo, se recomienda guardar la imagen y cargarla directamente (img-kJGHChHN-1685248088364)(https://api.cuiliangblog.cn/v1/public/imgProxy/?url=https://cdn.nlark.com/yuque/0/2020/png/2308212/160644807 1 815-d05c64b2-9d8a-4570-8f77-4ee2e1513446.png#align=left&display=inline&height=776&margin=%5Bobject%20Object%5D&name=%E6%9C%AA%E5%91%BD%E5%90%8D%E5%9B%BE%E7%89%87 . png&originHeight=776&originWidth=1278&size=471377&status=done&style=ninguno&width=1278)]

17. Los nodos del clúster k8s deben apagarse para mantenimiento, cómo operar

  • Realizar el desalojo del pod: drenaje de kubelet <node_name>
  • Compruebe si no hay ningún pod ejecutándose en el nodo y si el pod desalojado ya se está ejecutando normalmente en otros nodos.
  • mantenimiento de apagado
  • Inicie los servicios relacionados al inicio (tenga en cuenta la secuencia de inicio)
  • Nodo de nodo no planificable: nodo kubectl uncordon
  • Cree un módulo de prueba y use la etiqueta del nodo para probar que el nodo se puede programar normalmente

18. La diferencia entre Calico y franela

  • Franela (simple, más utilizada): basada en tecnología Vxlan (red superpuesta + túnel de capa 2), no admite políticas de red
  • Calico (más complejo, menos utilizado que Flannel): también puede admitir redes de túnel, pero es un túnel de capa 3 (IPIP), admite políticas de red
  • El proyecto Calico puede proporcionar de forma independiente soluciones de red y políticas de red para clústeres de Kubernetes, y también se puede combinar con flannel, donde flannel proporciona soluciones de red y Calico solo se usa para proporcionar políticas de red en este momento.

seis, prometeo

1. ¿Cuáles son las ventajas de Prometheus sobre Zabbix?

https://blog.csdn.net/wangyiyungw/article/details/85774969**

2. ¿Cuáles son los componentes de prometeo y cuáles son sus funciones?

inserte la descripción de la imagen aquí

3. ¿Cuáles son los tipos de indicadores?

  • Encimera
  • Calibre (tablero)
  • Histograma
  • Resumen

4. Cómo garantizar el rendimiento cuando se trata de monitorear miles de nodos

  • Reducir la frecuencia de recolección
  • Reducir el número de días para guardar datos históricos,
  • Uso de la federación de clústeres y el almacenamiento remoto

5. Describa brevemente todo el proceso, desde agregar el monitoreo de nodos hasta la representación gráfica de Grafana.

  • El nodo monitoreado instala el exportador
  • El servidor Prometheus agrega elementos de monitoreo
  • Ver la interfaz web de Prometheus - estado - objetivos
  • Grafana crea gráficos

6. ¿Qué exportadores se utilizan en el trabajo?

  • node-exporter monitorea hosts linux
  • cAdvisor monitorea contenedores
  • MySQLD Exporter monitorea mysql
  • Detección de red Blackbox Exporter
  • Pushgateway recopila indicadores personalizados para el seguimiento
  • Exportador de procesos Monitoreo de procesos

7. ALCE

1. ¿Cómo hacer una copia de seguridad y restaurar los datos de Elasticsearch?

https://www.cnblogs.com/tcy1/p/13492361.html
https://blog.csdn.net/moxiaomomo/article/details/78401400?locationNum=8&fps=1

2. ¿Cuál es el complemento de filtro logstash utilizado en su proyecto? ¿Qué funciones se implementan?

  • análisis de fecha y fecha
  • Análisis de coincidencia regular de Grok
  • sobrescribir escribir un campo
  • análisis del delimitador de disección
  • mutar maneja campos
  • Análisis JSON
  • análisis de ubicación geográfica geoip
  • ruby modificar evento logstash

3. ¿Ha utilizado el módulo incorporado de filebeat? ¿Que usaste?

inserte la descripción de la imagen aquí

4. ¿Qué es una copia de fragmento de elasticsearch? ¿Cuáles son los parámetros de su configuración?

https://juejin.cn/post/6844903862088777736

Ocho, desarrollo de operación y mantenimiento.

1. Copia de seguridad de todas las imágenes de contenedores en el sistema

#备份镜像列表
docker images|awk 'NR>1{print $1":"$2}'|sort > images.list。
#导出所有镜像为当前目录下文件:
while read img; do
    echo $img
    file="${img/\//-}"
    sudo docker save --output $file.tar $img
done < images.list
#将本地镜像文件导入为Docker镜像:
while read img; do
    echo $img
    file="${img/\//-}"
    docker load < $file.tar
done < images.list

2. Escriba un script, haga una copia de seguridad de una determinada biblioteca regularmente, luego comprímalo y envíelo a otra máquina

  • La parte pública define funciones, como la obtención de marcas de tiempo y la configuración de interfaces de alarma.
  • Use if para juzgar si hay una excepción y manejarla.Si la base de datos es grande, verifique si la tarea se completó. Compruebe si el tamaño del archivo generado es un archivo vacío

3. Obtenga información del sistema de todos los hosts en lotes

  • Use la biblioteca paramiko de python, ssh para iniciar sesión en el host para realizar operaciones de consulta
  • Use scripts de shell para ssh en lotes para iniciar sesión en el host y ejecutar comandos
  • Use el módulo de configuración de ansible para obtener información del host
  • El node_exporter de Prometheus recopila información de recursos del host

4. Proceso del modo mtv de Django

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo de enlace antirrobo, se recomienda guardar la imagen y cargarla directamente (img-G20mNtuR-1685248088365) (https://api.cuiliangblog.cn/v1/public/imgProxy/?url=https://cdn.nlark.com/yuque/0/2020/jpeg/2308212/160654 y tamaño=102450&estado=hecho&estilo=ninguno&ancho=992)]

5. Cómo exportar e importar paquetes dependientes del entorno en python

  • entorno de exportación
pip freeze >> requirements.txt
  • entorno de importación
pip install -r requirement.txt

6. python crear, entrar, salir, ver el entorno virtual

  • paquete de instalación
pip3 install virtualenv
  • Comprobar si la instalación fue exitosa
virtualenv --version
  • Crear un entorno virtual
  • cd al directorio donde desea crear el entorno virtual
cd github/test/venv/
  • Crear un entorno virtual
virtualenv test
  • Activar el entorno virtual
source test/bin/activate(activate路径)
  • Salir del entorno virtual
deactivate

7. La diferencia entre matraz y django, escenarios de aplicación.

  • Django tiene funciones amplias y completas, y Flask solo incluye la solución básica integral para configurar Django, por lo que los desarrolladores no necesitan dedicar mucho tiempo a elegir la infraestructura de la aplicación antes del desarrollo. Django tiene plantillas, formularios, enrutamiento, autenticación, administración básica de bases de datos y más integrado. Por el contrario, Flask es solo un núcleo, que depende de dos bibliotecas externas de forma predeterminada: el motor de plantillas Jinja2 y el conjunto de herramientas Werkzeug WSGI, y muchas otras funciones están integradas en forma de extensiones.
  • Flask es más flexible que Django. Antes de usar Flask para crear aplicaciones, brindará más flexibilidad a los desarrolladores al elegir componentes. Puede haber escenarios de aplicaciones que no sean adecuados para usar un ORM estándar (Mapeo de asociación de objetos de mapeo relacional de objetos), o que necesiten interactuar con diferentes flujos de trabajo y sistemas de plantillas.

8. Enumere los comandos de git más utilizados

  • $ git inicializar
  • $ git configuración
  • $ git añadir
  • $ git confirmar
  • $ git rama
  • $ git pago
  • $ git etiqueta
  • $ empujar git
  • $ git estado
  • $ git registro

9. Cómo configurar el proceso CICD de git gitlab jenkins

  • El desarrollador git envía el código al almacén de gitlab
  • Jenkins extrae el código de gitlab y activa la construcción del espejo
  • Sube la imagen al almacén privado del puerto.
  • Descargar la imagen a la máquina de ejecución
  • correr espejo

9. Trabajo diario

1. Qué problemas difíciles se encuentran en el trabajo diario y cómo solucionarlos

  • La contraseña débil de Redis genera virus de minería, solución de problemas y optimización
  • El programa desarrollado en k8s inicia el proceso cuando el usuario sube el archivo, pero no logra cerrarlo a tiempo, provocando que el nodo supere el número máximo de procesos

2. Proceso diario de resolución de problemas

  • Verifique el contenido de la alarma y ubique rápidamente el host, el servicio y el alcance de influencia más o menos defectuosos
  • Notifique al gerente de operación y mantenimiento de la falla y comience la solución de problemas
  • Si necesita modificar el archivo de configuración, reiniciar el servidor y otras operaciones, informe a los desarrolladores pertinentes
  • solución completa de problemas

3. Modificar el proceso del archivo de configuración comercial en línea

  • Informe primero al gerente de operación y mantenimiento y a los desarrolladores relacionados con el negocio.
  • Pruebe en el entorno de prueba y haga una copia de seguridad de los archivos de configuración anteriores
  • Modificar la configuración del entorno de producción después de que la prueba sea correcta
  • Observe si el entorno de producción es normal y si hay una alarma.
  • Cambios completos en el archivo de configuración

4. ¿Cuánto es el pv del negocio? ¿Cuál es el tamaño del clúster? ¿Cómo garantizar una alta disponibilidad del servicio?

10. Preguntas abiertas

1. ¿Cuál cree que es la diferencia entre un ingeniero de operaciones y mantenimiento junior y un ingeniero de operaciones y mantenimiento senior?

2. ¿Cuál cree que será la dirección de desarrollo futuro de O&M?

Supongo que te gusta

Origin blog.csdn.net/qq_44534541/article/details/130911409
Recomendado
Clasificación