Acerca de la computación en nube y la plataforma en la nube para construir Kubernetes

I. Introducción a la computación en nube

1, la tecnología de virtualización y computación en la nube enlaces

Nube concepto de computación:

  • La computación en nube es una red, almacenamiento, hardware, software, tecnología integrada, se hace hincapié en que el concepto de agrupaciones de recursos y agrupaciones de recursos dinámicos puede ser ilimitada expansión, reducción de volumen, y en última instancia permiten a los inquilinos para arrendar esos recursos.
  • La computación en nube es en última instancia, para proporcionar servicios a los inquilinos, arrendatarios de acuerdo a sus necesidades, para aplicar fondo de recursos, grupos de recursos proporcionan una plataforma llamada plataforma en la nube.

Virtualización conceptos:

  • La tecnología de virtualización de los recursos físicos en los recursos lógico puede ser manejado para romper la estructura barreras recurso físico, por lo que el servicio se está ejecutando en una máquina virtual de forma virtual, en lugar de ejecutar directamente de los recursos físicos.

Contacto: tecnología de virtualización es un módulo en la nube, y es un módulo integral. Cloud ofrece el cálculo de una gran variedad de agrupación de recursos, la tecnología de virtualización es una distribución razonable de estos recursos en el fondo de recursos de la máquina virtual. A continuación, poner la máquina virtual para la venta a pymes inquilinos fueron alquilados a diferentes precios en diferentes configuraciones.

2, la clasificación de la computación en nube

clasificación de tipo (1) Servicio

  • IaaS (Infraestructura como un servidor)
  • PaaS (Plataforma como un servidor)
  • SaaS (Software as a Server)
    Aquí Insertar imagen Descripciónanálisis de patrón:
  • Sin la nube, que tenemos que hacer es la parte más a la izquierda verde (es decir, todo)
  • Cuando presentamos IaaS, las cosas marrones en la siguiente parte de la plataforma en la nube, la parte verde anteriormente están relacionados con su propia (que proporciona hardware, tales como red, almacenamiento, etc.)
  • Cuando presentamos PaaS, figura, sólo utilizamos sus propios servicios de implementación de software.
  • Cuando presentamos SaaS, podemos utilizar el software desarrollado por el proveedor de la nube, estos son los programas informáticos existentes de código abierto en el software libre en general para el desarrollo de secundaria, con un mayor rendimiento, mayor apoyo y optimización. Al igual que SaaS, que básicamente sólo proporcionamos código del sitio web. ¿Qué otra cosa no tiene que mantener por sí mismo.

Más descripción de la imagen está disponible en el blog: https://blog.csdn.net/weixin_44571270/article/details/89737883

(2) para servir a la clasificación de objetos

  • nube pública
  • Nube privada
  • Nube híbrida

3, la entrada Kubernetes

1, Kubernetes está haciendo?
Kubernetes también conocidos K8S, porque hay ocho letras y segundo nombre. Se trata de una plataforma de automatización de gestión de contenedores. Nacido para gestionar cargador de muelle de contenedores nacido. Uso Kubernetes puede alcanzar las siguientes funciones:

  • Despliegue y contenedor de replicación automática;
  • Dude para expandir o reducir el tamaño del contenedor;
  • Los contenedores se organizan en grupos, y para proporcionar equilibrio de carga entre los recipientes;
  • Fácilmente actualizado nueva versión del contenedor de aplicaciones;
  • Proporcionar un recipiente elástico, el contenedor falla si se reemplaza por el estilo.

2, Kubernetes Componentes de Plataforma
Kubernetes agrupan Hay dos tipos principales de nodos: maestro, nodo subordinado, nodo Minion a nodo que ejecuta contenedores estibador, acoplable ejecuta en el nodo y es responsable de la interacción, y proporciona una función de proxy. El maestro principal es la gestión de un gran número de nodos distribuidos de subordinado.

  • Kubelect Maestro: nodo maestro responsable de interfaz API externa proporciona una gama de clusters y nodos gestionados interactúan y Minion se consigue haciendo funcionar la gestión del cluster.
  • Apiserver: la interacción del usuario clúster de entrada y kubernetes, deleciones objeto núcleo encapsula operación de cambio de búsqueda, proporcionada interfaz API estilo REST, la persistencia se consigue por ETCD y mantener la consistencia del objeto.
  • Programador: responsable de la programación y gestión de los recursos de clúster, como cuando una vaina cerrarse inesperadamente necesidad de volver a máquinas dispensadoras, planificador a través de un determinado algoritmo de planificación para encontrar el nodo más apropiado.
  • Controlador-manager: utiliza principalmente para asegurar la vaina número consistente de copia y el funcionamiento real de la replicación del controlador definido, y también para asegurar que la asignación del servicio a la vaina está siempre al día.
  • Kubelet: Docker ejecuta de forma interactiva en un nodo subordinado, y el nodo es responsable de, como arranque y parada del contenedor y la supervisión del estado de funcionamiento.
  • Proxy: correr nodo subordinado, es responsable de proporcionar la funcionalidad de proxy de la vaina, obtendrá regularmente información de servicio de ETCD, y para reenviar el tráfico mediante la modificación del servicio iptables de acuerdo a la información (la versión original es proporcionar reenviar directamente por el programa menos eficiente). nodo, y el tráfico hacia adelante a la que desea acceder pod arriba.
  • ETCD: ETCD kv consistencia es una base de datos distribuida sistema de almacenamiento, puede ser utilizado para el registro de servicio y base de datos de configuración de almacenamiento descubrimiento compartido se utiliza para kubernetes información tienda, componente ETCD como, fuerte consistencia de descubrimiento de servicios repositorio altamente disponible, gradualmente preocupación para los desarrolladores. En la era de la computación en la nube, cómo hacer un servicio rápido y un acceso transparente a cluster de computación, cómo compartir información de configuración se encontró rápidamente todas las máquinas en el clúster, lo más importante, cómo construir una alta disponibilidad tales, seguridad, facilidad de despliegue y los servicios de respuesta rápida clúster, ETCD nacido es resolver el problema.
  • Franela: franela es CoreOS equipo para un diseño de la cubierta neta Kubernetes (la superposición
    de red) herramientas, el propósito de franela es para todos los nodos de una planificación cúmulo volver a utilizar las reglas de direcciones IP, de manera que los contenedores en diferentes nodos pueden ser obtenidos pertenecen a una red y direcciones IP únicas, y por lo que el contenedor puede pertenecer a diferentes nodos en la red IP a través de la comunicación directa.

Dos, la plataforma de nube para construir Kubernetes

negocios en general, habrá múltiples nodos maestros, alta disponibilidad suele hacer, entonces no se distribuirán ETCD clúster. Pero cuando aprendemos la tecnología, no va a ser tan complicado. El sistema de la arquitectura más simple, necesitan por lo menos dos o tres servidores físicos.

entorno construido

Aquí Insertar imagen DescripciónEstoy aquí usando dos máquinas físicas. nodo maestro K8S 201, el nodo 200 cuando subordinado, uno puede hacer ETCD. Compartir un servidor físico en el nodo maestro.

proceso de construcción

1, el preludio de instalación
#两个服务器都要执行以下命令:
setenforce 0
或者 sed -i '/SELINUX/s/enforcing/disabled/g' /etc/selinux/config
systemctl stop firewalld

#ntp时间同步,master节点和million节点需要时间一致
yum install ntp -y
ntpdate pool.ntp.org
systemctl start ntpd
2, la instalación del nodo maestro
yum install kubernetes-master etcd -y
3, la configuración ETCD
vim /etc/etcd/etcd.conf

Aquí Insertar imagen Descripción
Nota: El puerto 2380 es el puerto para la comunicación entre el servidor y el servidor ETCD ETCD, también conocido como puerto de comunicación de clúster distribuido.
2379 puerto para proporcionar servicios HTTP AP, es decir, para proporcionar servicios al cliente a través del puerto, donde el puerto y para proporcionar servicios a la minion nodo maestro.
27.0.0.1:2379 comando a ejecutar la conexión localmente ETCD, 172.16.193.201: 2379 para las conexiones remotas.

mkdir -pv /data/etcd
chown -R etcd.etcd /data/etcd
4, K8S de configuración
cd /etc/kubernetes/
ll

Aquí Insertar imagen Descripción
K8S sido instalada para producir tres servicios:

  • apiserver: Unificado (funcionamiento) de entrada de comandos
    Aquí Insertar imagen Descripción
  • controlador-manager: Si el recipiente falla, se creará un nuevo contenedor de inmediato para garantizar que el número total de contenedores sin cambios
  • planificador: controlador de programación y se encontró que el recurso contenedor está lleno, será enviado automáticamente a otros recipientes.

Modificar K8S de configuración de configuración:
Aquí Insertar imagen DescripciónStart tres servicios:
Aquí Insertar imagen Descripción

5, la instalación de nodo subordinado
yum install kubernetes-node docker *rhsm* -y
6, K8S de configuración

Después de instalar nodo K8S subordinado genera dos servicios:

  • kubelet: mediante la interacción con estibador, emitió una orden de tareas. Es decir, el futuro no estibador plazo, por lo que la ventana acoplable ps. Puede utilizar kubelet esto otra vez. También puede crear una interfaz web para funcionar en un recipiente.

Aquí Insertar imagen Descripción

  • Proxy: SNAT, DNAT que hacer aquí. el tráfico hacia adelante, el proceso específico no está claro!

K8S subordinado editar el archivo de configuración:

vim config

Aquí Insertar imagen DescripciónIniciar los dos servicios:
Aquí Insertar imagen Descripción

7, el extremo principal vista nodo subordinado

Vistas:
Aquí Insertar imagen Descripcióneliminar nodos de peón:
Aquí Insertar imagen Descripciónañadir nodos subordinado:
sólo dos servicios de reinicio en el nodo subordinado K8S.

8, de franela de instalación

Nota: Este servicio es unificar la dirección IP asignada al contenedor ventana acoplable.

#这个flannel所有节点都要安装,无论master还是minion。
yum install flannel -y
vim /etc/sysconfig/flanneld

Aquí Insertar imagen Descripción

etcdctl mk /atomic.io/network/config '{"network":"172.17.0.0/16"}'
#             这个是key                     这个是value
systemctl start flanneld

servicios de instalación de franela de acogida:
Aquí Insertar imagen Descripción
contenedores de Docker:
Aquí Insertar imagen Descripción

En tercer lugar, la acumulación K8S interfaz de panel de control de interfaz de usuario

1, el nodo maestro para hacer la operación

(1) Crear un tablero de instrumentos-controller.yaml, archivo Dashborad-service.yaml
touch Dashboard-controller.yaml

El siguiente contenido escrito en el archivo:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: kubernetes-dashboard
  namespace: kube-system
  labels:
    k8s-app: kubernetes-dashboard
    kubernetes.io/cluster-service: "true"
spec:
  selector:
    matchLabels:
      k8s-app: kubernetes-dashboard
  template:
    metadata:
      labels:
        k8s-app: kubernetes-dashboard
      annotations:
        scheduler.alpha.kubernetes.io/critical-pod: ''
        scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly", "operator":"Exists"}]'
    spec:
      containers:
      - name: kubernetes-dashboard
        image: bestwu/kubernetes-dashboard-amd64:v1.6.3
        resources:
          limits:
            cpu: 100m
            memory: 50Mi
          requests:
            cpu: 100m
            memory: 50Mi
        ports:
        - containerPort: 9090
        args:
          - --apiserver-host=http://172.16.193.201:8080 #此处需要修改ip
        livenessProbe:
          httpGet:
            path: /
            port: 9090
          initialDelaySeconds: 30
          timeoutSeconds: 30

touch Dashboard-service.yaml

El siguiente contenido escrito en el archivo:

apiVersion: v1
kind: Service
metadata:
  name: kubernetes-dashboard
  namespace: kube-system
  labels:
    k8s-app: kubernetes-dashboard
    kubernetes.io/cluster-service: "true"
spec:
  selector:
    k8s-app: kubernetes-dashboard
  ports:
  - port: 80
    targetPort: 9090
(2) modificar el archivo de configuración apiserver

Nota: Si no se retiran parámetros ServiceAccount cuales, api rechazará el acceso a la interfaz de la interfaz de usuario.

#KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"

Si usted es el último a encontrar las palabras para hacer este paso. Usted necesita ser modificado, apiserver reinicio, a continuación, ejecutar:

kubectl delete -f Dashboard-controller.yaml
kubectl delete -f Dashboard-service.yaml

2, hacer la operación nodo subordinado (este paso no puede ser omitido)

Nota: Este paso no puede, el siguiente paso será descargar su propia imagen. Bajo entender por qué cambió su nombre en la línea, la versión y la versión K8S salpicadero no puede ser que hay mucha diferencia, por lo que no recomiendo a sí mismos Döcker tire del espejo!

Descargar pod-infraestructura, imagen kubernetes-tablero:

docker pull docker.io/tianyebj/pod-infrastructure
docker pull docker.io/mirrorgooglecontainers/kubernetes-dashboard-amd64

#这个改名是因为Dashboard-controller.yaml文件中调用过这个镜像
docker tag docker.io/siriuszg/kubernetes-dashboard-amd64 bestwu/kubernetes-dashboard-amd64:v1.6.3

#这个改名是因为minion节点中的/etc/kubernetes/kubelet文件中调用过它
docker tag docker.io/tianyebj/pod-infrastructure registry.access.redhat.com/rhel7/pod-infrastructure

3, crear y ejecutar un espejo

kubectl create -f Dashboard-controller.yaml
kubectl create -f Dashboard-service.yaml
iptables -P FORWARD ACCEPT (全部节点都要配置)

Error: Error: yaml: línea 38:
no encuentra clave que se espera que todo este error me ha causado mucho, mucho tiempo.
Solución de estos archivos tienen espacios no jugaron bien. un formato incorrecto. Recopiar o menos. Formato de archivo de .json de los estrictos requisitos de formato, un espacio de no más, no menos de una.

4, el acceso K8S interfaz UI

Comprobar si una interfaz de acumulación salpicadero éxito:

kubectl get pods -namespace kube-system

Este es un fracaso:
Aquí Insertar imagen Descripción
Se produjo un error, se puede ver el registro de:

kubectl logs kubernetes-dashboard-3584070908-vp0gl -n kube-system

Este es un éxito:
Aquí Insertar imagen DescripciónAquí Insertar imagen DescripciónAquí Insertar imagen Descripciónel éxito!

Ha publicado 188 artículos originales · alabanza 150 won · vistas 30000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_44571270/article/details/104767600
Recomendado
Clasificación