предисловие
Предыдущая серия руководств практиковалась в облаке Alibaba.Недавно я собрал настольный компьютер и установил систему win10. Чтобы дать большему количеству друзей возможность научиться оркестровке k8s, здесь используется другое более простое решение — Docker for Windows. Конечно, студенты, использующие Mac, также могут использовать Docker для Mac. Способы установки и использования аналогичны. Здесь речь пойдет об установке на win10.
Готов к работе
Конфигурация системы
начать виртуализацию
Сначала проверьте, поддерживает ли ЦП виртуализацию и включена ли виртуализация.
Если он не включен, вам нужно войти в BIOS, чтобы настроить его, что здесь не указано.
Включить Hyper-V
Установка Docker для Windows требует использования виртуализации, Hyper-V, Oracle Virtual Box или Docker Toolbox, если установленная система не соответствует требованиям для запуска Docker для Windows. Здесь не делается введение.
Настройки -> Приложения -> Программы и компоненты -> Включение и отключение компонентов Windows.
Включить Hyper-V
Необходимо дополнительное руководство по k8s, клиент NFS также включен. Клиент Telnet также является распространенным инструментом, который, кстати, также включен.
После включения перезагрузите компьютер.
ссылка для скачивания
Официальный сайт
Установить Докер
Дважды щелкните файл Docker for Windows Installer.exe, загруженный выше.
После успешной установки на рабочем столе появится значок
Можно увидеть нижнюю правую ногу
Зеркальное ускорение можно изменить, и здесь используется Alibaba Cloud.
Здесь, пока работающий Docker зеленый, оставьте Kubernetes в покое. Если вы установите его необдуманно, установка не удастся.
Проверить установленный докер
- Откройте терминал, чтобы проверить версию:
docker version
- Скачать образ nginx
docker pull nginx
- запустить образ nginx
docker run -p 81:80 -d --name mynginx nginx
Для удобства использования команд Linux используются здесь Git Bash
- доступ через браузер
http://localhost:81
- Очистите экземпляр 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
Установите Кубернетес
Подготовка к установке образа
Если образ не подготовлен заранее, то при включении 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 от имени администратора
- Повторно войдите в каталог k8s-for-docker-desktop.
- Установите разрешения скрипта выполнения
Set-ExecutionPolicy RemoteSigned
- Загрузить выполнение сценария зеркала
Логика скрипта на самом деле
- Загрузка изображений из репозитория Alibaba Cloud Mirror
- Измените тег зеркала на официальный адрес
- Удалить зеркало Али
./load_images.ps1
- Отключить разрешение на выполнение скрипта
Set-ExecutionPolicy Restricted
Включить кластер Kubernetes
После установки зеркала вы можете включить кластер Kuberneserts. Процесс будет иметь потери, а kubernetes будет зеленым после нормального запуска.
Загрузите клиент Kubectl
ссылка для скачивания:Woohoo. Это особенная организация. Талант/установить сложно E...
Настроить переменные среды, опущены.
Проверка кластера Kubernetes
- переключить текущий кластер
kubectl config use-context docker-desktop
- Проверка состояния кластера Kubernetes
kubectl cluster-info
kubectl get nodes
Установить вход-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.
адрес гитхаба:GitHub.com/Это так особенно/…
Какая это версия, перейдите в соответствующий файл.
- Загрузите файлы yaml по очереди
- начать установку
kubectl apply -f mandatory.yaml
kubectl apply -f cloud-generic.yaml
- Проверять
kubectl get pods -n ingress-nginx
- доступ через браузер
http://localhost
Полностью опубликовать службу 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
Создать файл конфигурации 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
Создать файл 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
Создать сервис
- 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
Создать вход
- 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
Изменить хосты
доступ через браузер
Окончательная очистка
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
резюме
В этой статье вы устанавливаете 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-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