применять кLinuxизWindowsПодсистема (WSL) ДаWindows 10Добавлена функция, которую можно использовать непосредственно вWindowsзапускать наLinuxЗаказ. иWSL 2даWSLНовая версия, поддерживающаяLinuxизWindowsподсистема вWindowsзапускать наELF64 Linuxбинарный файл. Его основная цель — улучшить производительность файловой системы и повысить полную совместимость системных вызовов.WSL 2Использование технологии виртуализации в облегченной служебной виртуальной машине (VM) работает внутриLinuxядро.
включить и настроитьWSL 2
требования к версии win
WSL 2только приWindows 10 18917или выше доступна версия, если версия слишком низкая, вы можете добавитьWindows InsiderОбновитьWindows, мы можемcmdиспользуется вverчтобы проверить текущийwinверсия.
включить虚拟机平台дополнительные компоненты
существуетpowerShellВыполните следующую команду от имени администратора
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
После завершения операции перезагрузите компьютер, чтобы завершить установку.
Настройка дистрибутива WSL
Если вы хотите установить по умолчаниюWSLРаздача настроена наWSL 2,существуетpowerShellиспользуйте следующую команду в
wsl --set-default-version 2
Если вы хотите установить дистрибутив какWSL2,существуетpowerShellиспользуйте следующую команду в<Distro>Просто перейдите на дистрибутив, который вы хотите настроить, например.Ubuntu-18.04
wsl --set-version <Distro> 2
Подтвердите с помощьюWSLВерсия
wsl -l -v
Загрузить и установитьUbuntu-18.04
существуетWindowsПоиск в магазине приложенийUbuntu-18.04, а затем загрузить, открыть после завершения загрузкиUbuntu-18.04, то сначала будут выполнены некоторые начальные настройки установки, а затем вам будет предложено установить новыйUNIXПосле того, как имя пользователя и пароль установлены, введитеlinuxподсистема. убедиться, что этоWSL 2нам просто нужноpowerShellвходитьwsl -l -v, вывод следующий, здесьVERSIONза2Делегат включенWSL 2
NAME STATE VERSION
* Ubuntu-18.04 Running 2
Ubuntu-18.04Замените внутренние источники
Сначала сделайте резервную копию источника по умолчанию
cp /etc/apt/sources.list /etc/apt/sourses.list.bak
Измените источник по умолчанию на источник Ali, используйтеsudo vim /etc/apt/sources.listКоманда для редактирования, удаления исходного контента и добавления следующей информации Aliyuan
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
После изменения источника используйте следующую команду для его обновления.
sudo apt-get update
sudo apt-get upgade
Конфигурация установкиWindows Terminal
скачатьWindows Terminal
Windows TerminalдаwinЗапущен новый инструмент командной строки, который можно найти и скачать в магазине приложений.После установки интерфейс открывается следующим образом
Введение в него не будет здесь расширяться, а как его использовать записывается здесь.Windows TerminalсоединятьWSL 2и установить конфигурациюzsh.
Установитьzsh
# 安装 zsh
sudo apt-get install zsh
# 修改默认的 Shell 为 zsh
chsh -s /bin/zsh
Установитьoh-my-zsh
oh-my-zshдля быстрой настройкиzsh,ВходитьОфициальный сайтилиGithubВы можете понять его основное использование и использование его богатой темы.Для установки вам нужно всего лишь выполнить следующий код.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Установитьzsh-syntax-higlightingПлагин подсветки синтаксиса
# 下载
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
# 移动到 plugins 文件夹中
mv -p zsh-syntax-highlighting $ZSH_CUSTOM/plugins
# 配置环境变量
cd ~
vim .zshrc
#在 plugins 一列中添加 zsh-syntax-highlighting,如下
plugins=(
git
zsh-syntax-highlighting
)
# 在文件末尾添加
source $ZSH_CUSTOM/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
# 配置生效
source ~/.zshrc
Установитьzsh-autosuggestionsПлагин истории синтаксиса
# 下载
git clone https://github.com/zsh-users/zsh-autosuggestions.git
# 移动到 plugins 文件夹中
mv -p zsh-autosuggestions $ZSH_CUSTOM/plugins
# 配置环境变量
cd ~
vim .zshrc
#在 plugins 一列中添加 zsh-autosuggestions,如下
plugins=(
git
zsh-syntax-highlighting
zsh-autosuggestions
)
# 在文件末尾添加
source $ZSH_CUSTOM/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
# 配置生效
source ~/.zshrc
После завершения настройки курсор темы по умолчанию отображается ниже.Если вы хотите настроить более богатую тему, вы можете Baidu
Установить и настроитьDockerокрестности
существуетWSL 2установкаDocker
удалить старую версию
sudo apt-get remove docker docker-engine docker.io containerd runc
Настроить репозиторий
# 更新 apt 包索引
sudo apt-get update
# 安装软件包以允许 apt 通过 HTTPS 使用存储库
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
# 设置稳定的存储库
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
УстановитьDockerИздание сообщества (docker-ce)
# 更新 apt 包索引
sudo apt-get update
# 安装最新版本的 Docker 和 containerd
sudo apt-get install docker-ce docker-ce-cli containerd.io
# (*)安装特定版本;<VERSION> 为具体版本,例如 18.09.1
sudo apt-get install docker-ce=<VERSION> docker-ce-cli=<VERSION> containerd.io
запускатьdockerИ настроить загрузку на автоматический запуск
# 启动 docker
systemctl start docker.service
# 设置开机自启
systemctl enable docker.service
если неrootпользователь хочет использоватьdocker, пользователь должен быть добавлен вdockerгруппа пользователей
sudo usermod -aG docker user-name
(*) Удалить докер
# 卸载软件
sudo apt-get purge docker-ce
# 删除 docker 的容器,镜像,卷等存储
sudo rm -rf /var/lib/docker
Загрузить и установитьDocker Desktop WSL 2 backend
WSL 2Вводит значительные архитектурные изменения, как этоMicrosoftполная сборкаLinuxядро, разрешитьLinuxКонтейнеры работают изначально без эмуляции, в то время какDockerОн также был специально разработан для использованияWSL 2серединаDockerменеджер рабочего стола демона, открытьDocker Desktop WSL2 backendстраницу, загрузите последнюю версию программы, после установки откройте программу и выполните следующие настройки.
- Включить экспериментальную основу
WSL 2флажок двигателя (Enable the experimental WSL 2 based engine)
- (*) незащищенный
2375Port, чтобы другие внешние программы также могли управлятьDocker(ОткрытымExpose daemon on tcp://localhost:2375 without TLSпредыдущий флажок) - существует
Resourcesнабор из которогоWSL 2Доступ в релизеDocker, который используется на следующем рисункеUbuntu-18.04
После завершения настройки нажмитеApply & RestartПрименить и перезапуститьDocker Desktop. После полной перезагрузки видимDesktopнижняя левая ногаDockerстатус зеленыйrunningвыражатьDockerБег.
Чтобы узнать, что вы установилиDockerДля получения соответствующей информации о версии мы можем найти ее вAbout Docker DesktopКак показано на рисунке ниже, текущий установленныйDocker EngineВерсия19.03.5,Docker-composeВерсия1.25.1-rc1, поддерживаетсяKubernetesВерсияv1.15.5.
Установить и настроитьKubernetesокрестности
ИсправлятьDocker daemonнастроить
докер по умолчаниюCgroup Driverзаcgroup,Но когдаkubernetes1.14Рекомендуется использовать более поздние версииsystemdприйти какDockerизcgroupводить машину. использоватьvim /etc/docker/deamon.jsonКоманда для изменения или создания новой конфигурации. Конкретное содержимое конфигурации см.Официальный представитель Kubernetes.
Кроме того, нам нужно настроитьDockerВнутренний зеркальный источник, ускоренное зеркалоdownloadСкорость обычно используется в зеркальном источнике Али и Университете науки и техники Китая. Вышеупомянутые два шага настройки следующие:
# 编辑 deamon 文件
vim /etc/docker/deamon.json
# 输入如下内容
{
"registry-mirrors": ["https://6e0d9uoa.mirror.aliyuncs.com","https://docker.mirrors.ustc.edu.cn"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
# 重启 Docker
sudo service docker restart
скачатьKubernetesнеобходимое зеркало
Из-за проблем с сетью, если вы не можете получить доступ к внешней сети,Decker Desktopвыбрать вKubernetesЕго нельзя запустить. К счастью, служба Alibaba Cloud Container Service находится вGithubоткрытый источникDocker Desktop для Mac/Windows позволяет использовать Kubernetesпроект, нам просто нужно скачать его и выполнить скрипт, чтобы получить всеKubernetesВсе необходимые изображения загружаются локально.
#将项目下载到本地
git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop
#进入项目目录
cd k8s-for-docker-desktop
#由于最新 master 已经支持 kubernetes v1.15.5,所以直接执行下载脚本即可
./load_images.sh
После того, как все зеркала загружены, мы используемdocker imagesВы можете увидеть загруженный контейнер
REPOSITORY TAG IMAGE ID CREATED SIZE
k8s.gcr.io/kube-apiserver v1.15.5 e534b1952a0d 2 months ago 207MB
k8s.gcr.io/kube-proxy v1.15.5 cbd7f21fec99 2 months ago 82.4MB
k8s.gcr.io/kube-controller-manager v1.15.5 1399a72fa1a9 2 months ago 159MB
k8s.gcr.io/kube-scheduler v1.15.5 fab2dded59dd 2 months ago 81.1MB
quay.io/kubernetes-ingress-controller/nginx-ingress-controller 0.26.1 29024c9c6e70 2 months ago 483MB
docker/kube-compose-controller v0.4.23 a8c3d87a58e7 6 months ago 35.3MB
docker/kube-compose-api-server v0.4.23 f3591b2cb223 6 months ago 49.9MB
k8s.gcr.io/coredns 1.3.1 eb516548c180 11 months ago 40.3MB
k8s.gcr.io/kubernetes-dashboard-amd64 v1.10.1 f9aed6605b81 12 months ago 122MB
k8s.gcr.io/etcd 3.3.10 2c4adeb21b4f 12 months ago 258MB
k8s.gcr.io/pause 3.1 da86e6ba6ca1 24 months ago 742kB
включитьKubernetes
мы вDocker DesktopВыберите Включить в настройкахkubernetes, затем нажмитеApply & Restartперезагружать.
Если вам повезет, при перезагрузке вы найдетеDesktopнижняя левая ногаDockerиKubernetesстатус стал зеленымrunnning, но очень вероятно, что после перезапускаkubernetesСтатус всегда был желтыйstarting. Не волнуйтесь, если это произойдет, мы можемC:\ProgramData\DockerDesktopвнизservice.txtПроверьте информацию журнала запуска.Как правило, запуск завершается неудачно, и информация журнала, которая появляется чаще всего, является следующим повторяющимся содержимым
[08:57:24.359][ApiProxy ][Info ] time="2019-12-20T08:57:24+08:00" msg="cannot list nodes: Get https://kubernetes.docker.internal:6443/api/v1/nodes: EOF"
[08:57:24.359][GoBackendProcess ][Info ] time="2019-12-20T08:57:24+08:00" msg="external: POST /events 200 \"Go-http-client/1.1\" \"\""
В этом случае вы можете обратиться кIssue 3769(comment)иIssue 1962(comment), по сути, суммировать следующие операции:
- Исправлять
hostфайл, будет127.0.0.1 kubernetes.docker.internalКартографическая информация добавлена вhostв файле - изменить сетевое соединение
DNSадрес8.8.8.8,winкак изменить сетевое подключениеDNSВы можете самостоятельно использовать Baidu - Удалить
C:\ProgramData\DockerDesktopв каталогеpkiфайл каталога - Удалить
C:\Users\<yourname>目录下из.kubeфайл каталога - закрытие
winсетевой брандмауэр илиvpnkit.exeДобавлено в правила для входящего и исходящего трафика брандмауэра. - существует
Desktopнажмите, чтобы войтиtroubleshoot, щелкните Сбросkubernetesкластер (Reset Kubernetes cluster)
Если вышеуказанная операция по-прежнему не удалась, рекомендуется повторить операцию несколько раз. Если есть другие проблемы, обычно обращайтесь кdocker\for-winПроектissueРешение можно найти ниже. Если запуск прошел успешно, мы можем проверить, выполнив следующую команду в командной строке
$ kubectl cluster-info
Kubernetes master is running at https://kubernetes.docker.internal:6443
KubeDNS is running at https://kubernetes.docker.internal:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
docker-desktop Ready master 6h v1.15.5
развертыватьKubernetes dashboard
Kubernetes dashboardдаKubernetesна основе кластераWebОбщийUI. Он позволяет пользователям управлять приложениями, работающими в кластере, и устранять неполадки, а также управлять самим кластером. Выполните следующую команду для развертывания
# 新建 dashboard 资源
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
# (*)如果上面命令执行说网络连接有问题,把 yaml 文件下载到本地,然后执行
kubectl apply -f kubernetes-dashboard.yaml
# 开启 API Server 访问代理
kubectl proxy
После завершения развертывания мы передаем следующееURLполучить доступKubernetes dashboard
ВходитьDashboardЕсли вам нужен токен, вы можете получить его с помощью следующей команды, а затем скопировать и вставить сгенерированный токен в поле ввода токена для входа.
kubectl -n kube-system describe secret default| awk '$1=="token:"{print $2}'
Загрузить и установитьHelm
HelmдаDeisОдна разработкаkubernetesменеджер пакетов. каждый пакет называетсяChart,HelmУстановка клиента очень проста, мы можем перейти кGithubЗагрузите последнюю исполняемую программу, распакуйте ее и используйте. Конкретные шаги операции следующие:
# 下载 v2.16.1 版本
wget https://get.helm.sh/helm-v2.16.1-linux-amd64.tar.gz
# 解压
tar -zxvf helm-v2.16.1-linux-amd64.tar.gz
cd linux-amd64/
# 移动到 /usr/local/bin 目录下
cp helm /usr/local/bin/
СерверtillerЕго не так просто установить, потому что зеркало внешней сети нужно скачать. к счастьюDocker HubЕсть зеркальные изображения, упакованные и загруженные другими, нам нужно толькоpullспуститься, ударитьtagЗатем выполняются следующие конкретные шаги:
# 下载镜像到本地
docker pull doublemine/kubernetes-helm.tiller:v2.16.1
# 添加 tag
docker tag doublemine/kubernetes-helm.tiller:v2.16.1 gcr.io/kubernetes-helm/tiller:v2.16.1
После того, как образ сервера загружен локально, мы можем установить его на кластерtiller, мы можем запустить следующие команды, чтобы создать учетную запись службы и инициализировать клиент.
kubectl create serviceaccount tiller -n kube-system
kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount kube-system:tiller
helm init --wait --service-account tiller
После завершения установки и инициализации мы хотим проверитьtillerНезависимо от того, запущена ли служба, вы можете использовать следующую команду
$ kubectl get pod --namespace kube-system
NAME READY STATUS RESTARTS AGE
coredns-5c98db65d4-7rn5b 1/1 Running 0 12h
coredns-5c98db65d4-bx9x2 1/1 Running 0 12h
etcd-docker-desktop 1/1 Running 0 12h
kube-apiserver-docker-desktop 1/1 Running 0 12h
kube-controller-manager-docker-desktop 1/1 Running 0 12h
kube-proxy-rdtfm 1/1 Running 0 12h
kube-scheduler-docker-desktop 1/1 Running 0 12h
kubernetes-dashboard-7d75c474bb-qcbxx 1/1 Running 0 4h46m
tiller-deploy-54f7455d59-fgsnb 1/1 Running 0 12h
Мы видим, что последний столбец показываетtillerСлужба запущена.
Helm настраивает отечественные зеркальные источники
когда мы используемhelmПри установке приложения мы найдемdownloadСкорость очень низкая, и могут быть проблемы с сетью.В этом случае нам нужно настроить зеркальный источник загрузки по умолчанию, чтобы он был домашним. Конкретные этапы настройки следующие:
# 删除默认的镜像源
helm repo remove stable
# 增加新的国内镜像源
helm repo add stable http://mirror.azure.cn/kubernetes/charts/
helm repo add incubator http://mirror.azure.cn/kubernetes/charts-incubator/
# 更新仓库
sudo helm repo update
# 测试速度
helm search mysql