K8S руки с вами, чтобы построить кластер веселья K8S-Win10 на

Kubernetes

предисловие

Предыдущая серия руководств практиковалась в облаке Alibaba.Недавно я собрал настольный компьютер и установил систему win10. Чтобы дать большему количеству друзей возможность научиться оркестровке k8s, здесь используется другое более простое решение — Docker for Windows. Конечно, студенты, использующие Mac, также могут использовать Docker для Mac. Способы установки и использования аналогичны. Здесь речь пойдет об установке на win10.

Готов к работе

Конфигурация системы

image-20200802192227735

начать виртуализацию

Сначала проверьте, поддерживает ли ЦП виртуализацию и включена ли виртуализация.

image-20200802192011497

image-20200802191819382

Если он не включен, вам нужно войти в BIOS, чтобы настроить его, что здесь не указано.

Включить Hyper-V

Установка Docker для Windows требует использования виртуализации, Hyper-V, Oracle Virtual Box или Docker Toolbox, если установленная система не соответствует требованиям для запуска Docker для Windows. Здесь не делается введение.

Настройки -> Приложения -> Программы и компоненты -> Включение и отключение компонентов Windows.image-20200802192500716

image-20200802194641122

image-20200802194820851

Включить Hyper-V

image-20200802194915968

Необходимо дополнительное руководство по k8s, клиент NFS также включен. Клиент Telnet также является распространенным инструментом, который, кстати, также включен.

image-20200802195039581

После включения перезагрузите компьютер.

ссылка для скачивания

Docker for Windows

img

Официальный сайт

image-20200802193904737

Установить Докер

img

Дважды щелкните файл Docker for Windows Installer.exe, загруженный выше.

image-20200808201918679

image-20200808201952436

image-20200808202100659

После успешной установки на рабочем столе появится значок

image-20200802195611901

Можно увидеть нижнюю правую ногу

image-20200808202428384

image-20200808202413149

Зеркальное ускорение можно изменить, и здесь используется Alibaba Cloud.

image-20200808202712957

Здесь, пока работающий Docker зеленый, оставьте Kubernetes в покое. Если вы установите его необдуманно, установка не удастся.

Проверить установленный докер

  • Откройте терминал, чтобы проверить версию:
docker version

image-20200808203059617

  • Скачать образ nginx
docker pull nginx

image-20200802200335386

  • запустить образ nginx
docker run -p 81:80 -d --name mynginx nginx

Для удобства использования команд Linux используются здесь Git Bash

image-20200802201727058

  • доступ через браузерhttp://localhost:81

image-20200802200928676

  • Очистите экземпляр nginx, который вы только что запустили
# 停止刚运行的名称为mynginx的实例
docker ps -a | grep mynginx | awk '{print $1}' | xargs docker stop
# 删除刚运行的名称为mynginx的实例
docker ps -a | grep mynginx | awk '{print $1}' | xargs docker rm

image-20200802201759127

Установите Кубернетес

Подготовка к установке образа

Если образ не подготовлен заранее, то при включении Kubernetes страница зависнет, причина в том, что образ будет загружен с официального адреса, предоставленного Kubernetes по умолчанию, который заблокирован в Китае, поэтому нам необходимо скачать соответствующий изображение на местный.

GitHub.com/А Ли Юнь против своего…

![

](Бык верховая красивая замороженная .com / Красивая замороженная - Ruiti ...)

  • скрипт клона
git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop.git
  • войти в каталог
cd k8s-for-docker-desktop
  • Проверьте соответствующую ветку версии
git checkbot v1.16.5
  • Запустите PowerShell от имени администратора

image-20200802203245791

  • Повторно войдите в каталог k8s-for-docker-desktop.
  • Установите разрешения скрипта выполнения
Set-ExecutionPolicy RemoteSigned
  • Загрузить выполнение сценария зеркала

Логика скрипта на самом деле

  1. Загрузка изображений из репозитория Alibaba Cloud Mirror
  2. Измените тег зеркала на официальный адрес
  3. Удалить зеркало Али
./load_images.ps1
  • Отключить разрешение на выполнение скрипта
Set-ExecutionPolicy Restricted

image-20200802203748999

image-20200802203800085

Включить кластер Kubernetes

После установки зеркала вы можете включить кластер Kuberneserts. Процесс будет иметь потери, а kubernetes будет зеленым после нормального запуска.

image-20200808203137963

image-20200808210124778

image-20200808210510300

Загрузите клиент Kubectl

ссылка для скачивания:Woohoo. Это особенная организация. Талант/установить сложно E...

image-20200802204540731

Настроить переменные среды, опущены.

Проверка кластера Kubernetes

  • переключить текущий кластер
kubectl config use-context docker-desktop
  • Проверка состояния кластера Kubernetes
kubectl cluster-info
kubectl get nodes

image-20200802204955552

Установить вход-nginx

Учащиеся, прочитавшие предыдущую серию статей, возможно, знают, что в Kubernetes есть три способа предоставления сервисов.

  • LoadBlancer Service
  • NodePort Service
  • Ingress

Я не буду делать здесь слишком много вводных, студенты, которые хотят знать, могут проверить информацию. Когда мы используем облачную платформу, облачная платформа уже помогла установить ingress-nginx, нам нужно только определить используемый файл yaml, здесь нам нужно установить его самостоятельно.

Последовательность вызова балансировки нагрузки ingress-nginx: пользователь --- > ingress-nginx (pod) --- > ingress-nginx (контроллер) --- > ingress --- > service --- > pod

В разных версиях Kubernetes используются разные версии ingress-nginx, мы можем взглянуть на нашу текущую соответствующую версию.

Взгляните на файл k8s-for-docker-desktop/images.properties.

image-20200802211535280

адрес гитхаба:GitHub.com/Это так особенно/…

image-20200802211644109

Какая это версия, перейдите в соответствующий файл.

  • Загрузите файлы yaml по очереди

image-20200802212240083

image-20200802214633217

image-20200802214705065

  • начать установку
kubectl apply -f mandatory.yaml
kubectl apply -f cloud-generic.yaml
  • Проверять
kubectl get pods -n ingress-nginx

image-20200802214929902

  • доступ через браузерhttp://localhost

image-20200802214945340

Полностью опубликовать службу Nginx

Создать пространство имен

  • nginx-ns.yaml
cat << EOF > nginx-ns.yaml
apiVersion: v1
kind: Namespace
metadata:
  name: mldong-study
  
EOF

  • Выполнить команду освобождения
kubectl apply -f nginx-ns.yaml
  • Просмотр результатов выполнения
kubectl get ns

image-20200802215728932

Создать файл конфигурации ConfigMap

  • nginx-cm.yaml
cat << EOF > nginx-cm.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-cm
  namespace: mldong-study
data:
  a.conf: |-
    server {
      listen       80;
      server_name  a.study.com;
      location / {
        root   /usr/share/nginx/html;
        index  a.html;
      }
      error_page   500 502 503 504  /50x.html;
      location = /50x.html {
        root   /usr/share/nginx/html;
      }
    }
  b.conf: |-
    server {
      listen       80;
      server_name  b.study.com;
      location / {
        root   /usr/share/nginx/html;
        index  b.html;
      }
      error_page   500 502 503 504  /50x.html;
      location = /50x.html {
        root   /usr/share/nginx/html;
      }
    }
    
  
EOF

  • Выполнить команду освобождения
kubectl apply -f nginx-cm.yaml
  • Посмотреть результаты выполнения
kubectl get cm -n mldong-study

image-20200802222243494

Создать файл ConfigMap-html

Не очень удобно использовать hostpath на win, и в дальнейшем будет использоваться nfs. Вот самый простой способ демонстрации.

  • nginx-cm-html.yaml
cat << EOF > nginx-cm-html.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-cm-html
  namespace: mldong-study
data:
  a.html: |-
    aaaaaa
  b.html: |-
    bbbbbb
  
EOF

  • Выполнить команду освобождения
kubectl apply -f nginx-cm-html.yaml
  • Посмотреть результаты выполнения
kubectl get cm -n mldong-study

Создать развертывание

  • nginx-deployment.yaml
cat << EOF > nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  namespace: mldong-study
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 1
  template:
    metadata:
      annotations:
        version/config: V0001
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:latest
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 80
              name: port
              protocol: TCP
          volumeMounts:
            - name: nginx-cm-html
              mountPath: "/usr/share/nginx/html"
            - name: nginx-cm
              mountPath: "/etc/nginx/conf.d"ls
      volumes:
        - name: nginx-cm-html
          configMap: 
            name: nginx-cm-html
        - name: nginx-cm
          configMap:
            name: nginx-cm
  
EOF
  • Выполнить команду освобождения
kubectl apply -f nginx-deployment.yaml
  • Посмотреть результаты выполнения
kubectl get pods -n mldong-study

image-20200802222418364

Создать сервис

  • nginx-service.yaml
cat << EOF > nginx-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: nginx-nodeport
  namespace: mldong-study
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 80
    #nodePort: 32180 # 这里不指定就会随机(30000-32767)
  selector:
    app: nginx
---
apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: mldong-study
spec:
  type: ClusterIP
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx

EOF

  • Выполнить команду освобождения
kubectl apply -f nginx-service.yaml
  • Посмотреть результаты выполнения
kubectl get service -n mldong-study

image-20200802222632065

Создать вход

  • nginx-ingress.yaml
cat << EOF > nginx-ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
  name: mynginx-ingress
  namespace: mldong-study
spec:
  rules:
    - host: a.study.com
      http:
        paths:
          - backend:
              serviceName: nginx
              servicePort: 80
            path: /
    - host: b.study.com
      http:
        paths:
          - backend:
              serviceName: nginx
              servicePort: 80
            path: /

  
EOF

  • Выполнить команду освобождения
kubectl apply -f nginx-ingress.yaml
  • Посмотреть результаты выполнения
kubectl get ingress -n mldong-study

image-20200802223328697

Изменить хосты

image-20200802223533643

доступ через браузер

a.study.com

b.study.com

image-20200802230514957

image-20200802230525836

Окончательная очистка

kubectl delete -f nginx-ns.yaml

Если вам нужно выполнить его снова, последовательно выполните следующие команды:

kubectl apply -f nginx-ns.yaml
kubectl apply -f nginx-cm.yaml
kubectl apply -f nginx-cm-html.yaml
kubectl apply -f nginx-deployment.yaml
kubectl apply -f nginx-service.yaml
kubectl apply -f nginx-ingress.yaml

image-20200802231134661

резюме

В этой статье вы устанавливаете Docker для Windows в системе Win10, включаете версию кластера Kubernetes с одним узлом и полностью публикуете службу nginx. Можно сказать, что после установки Docker для Windows и успешного включения его Kubernetes вы можете официально приступить к работе и научиться оркестровке k8s. Конечно, в этой среде можно не только научиться оркестровке k8s, но и приходить с docker/docker-compose, а также можно аранжировать.

Адрес исходного кода проекта

  • задняя часть

git ee.com/ замораживание прекрасного/красивая ох...

  • внешний интерфейс

git ee.com/ замораживание прекрасного/красивая ох...

Статьи по Теме

Практика с вами, чтобы играть в создание кластера k8s и Hello World

Практический опыт работы с k8s-ConfigMap и постоянным хранилищем

Рука об руку с вами, чтобы играть в k8s-полный выпуск сервиса, к которому можно получить доступ извне

Руки с удовольствием K8S-Docker Docker-Compose и Advanced Dockerfile

Рука об руку с вами, чтобы играть в развертывание проектов Springboot одним щелчком мыши k8s

Рука об руку с вами, чтобы играть в проект k8s-deploy vue одним щелчком мыши

Рука об руку, чтобы взять вас в игру k8s-подробное объяснение общих объектов

Рука об руку с вами, чтобы играть на линии установки и сборки k8s-jenkins

Руки с удовольствием C8S-Jenkins Line Syntax

Рука об руку, чтобы провести вас через конвейер k8s-jenkins для выпуска проекта springboot.

Взять вас за руку, чтобы поиграть в конвейер k8s-jenkins и выпустить проект vue.

Рука об руку с вами, чтобы играть в k8s-Health Check Survival Probe и Readiness Probe