предисловие
В связи с потребностями развития бизнеса компании услуги на swarm сейчас постепенно переводятся на k8s. И у меня, наконец, появилась возможность начать обучение (caikeng) k8s. Я не буду сравнивать рой и к8с здесь, во всяком случае, я знаю, что к8с более ароматный, чем рой. Эта серия руководств в основном предназначена для партнеров по разработке, которые хотят начать работу с k8s, но не имеют доступа.
Строительство окружающей среды
Конструирование среды в этой статье на самом деле не нужно создавать вручную, а использовать контейнерный сервис облачной платформы для создания кластера k8s. Цель очень проста, пусть профессиональные люди делают профессиональные вещи. Мы можем беспрепятственно использовать k8s и позволить облачной платформе выполнять обслуживание. Конечно, главная причина в том, чтобы позволить всем быстрее начать работу с k8s. Есть много облачных провайдеров, ниже мы рассмотрим Alibaba Cloud в качестве примера, чтобы описать, как создать кластер k8s.
Готов к работе
-
Подготовьте сервер ECS — назовите его Xiao A здесь.
Это не обязательно, но рекомендуется купить один.Вы можете выбрать некоторые отдаленные районы для покупки, поэтому будут скидки, такие как Северный Китай 3 (Чжанцзякоу)
-
конфигурация сервера
Рекомендуемая минимальная конфигурация:
2 ядра 4G памяти
Плати как сможешь
-
Операционная система
Рекомендуется Centos7.7
-
установить программное обеспечение
docker-должен быть установлен, в этой статье о нем говориться не будет, в сети много туториалов.
Инструмент управления kubectl-k8s, говорится в следующем руководстве.
Будут задействованы Nginx-последующие туториалы, поэтому рекомендуется установить
-
Запустите доменное имя, это тоже очень дешево
Установить Кубектл
исходная конфигурация
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
Установить
[root@mldong ~]# yum install -y kubectl
Создать кластер
Поиск контейнерных услуг
Выберите создание кластера
Конфигурация кластера
Выберите управляемую версию Kubernetes, обратите внимание на регион здесь и выберите тот же регион, что и сервер ECS A, упомянутый выше, чтобы они могли получать доступ друг к другу в одной и той же интрасети.
Конфигурация рабочего узла
Здесь мы используем только что добавленные инстансы, с оплатой по мере использования и выбираем подходящую конфигурацию, здесь мы выбираем более дешевую, ecs.t6-c1m2.large.
Минимум два, операционная система может быть Centos7.7, в качестве метода входа рекомендуется использовать метод ключа, то есть открытый ключ предыдущего сервера ECS A, если нет, создайте его самостоятельно.ssh-keygen -t rsa
, нажмите Enter три раза.
Конфигурация компонента
Используйте интранет, так дешево. Вы можете использовать маленькую A для внешнего доступа. Подключаемый модуль хранилища выбирает CSI.
Подтвердить конфигурацию
Конфигурация, которую я выбрал сейчас, относительно недорогая — более 40 центов в час, что дешевле похода в интернет-кафе. В дополнение к серверу ECS, есть еще балансировка нагрузки-частная сеть, которую позже научим, как ее закрывать.
Проверка создания кластера, если это не удается, появится подсказка, просто сделайте это по мере необходимости.
Кластер создается
Кластер успешно создан
Просмотр информации о кластере
Конфигурация КубеКонфиг
Скопировать KubeConfig
[root@mldong ~]# cat /root/.kube/config
Подключиться к тесту кластера
[root@mldong nginx]# kubectl get node
NAME STATUS ROLES AGE VERSION
cn-zhangjiakou.172.26.22.118 Ready <none> 83m v1.16.9-aliyun.1
cn-zhangjiakou.172.26.22.119 Ready <none> 83m v1.16.9-aliyun.1
Конфигурация группы безопасности кластера
Просмотр экземпляров облачного сервера
Только что создал два новых экземпляра
Присоединитесь к той же группе безопасности, что и Сяо А.
Убедитесь, что группа безопасности настроена успешно
Если вы входите в кластер нормально, вы успешны, но на самом деле вам не нужно входить в кластер, просто проверьте это.
[root@mldong .kube]# ssh root@worker1 echo 666
666
Конфигурация службы изображений
Поскольку создается кластер интрасети, зеркало внешней сети нельзя получить напрямую, поэтому сначала необходимо настроить службу зеркала, доступ к которой можно получить из интрасети.
Поиск сервисов образов контейнеров
Создать пространство имен
Создать зеркальный репозиторий
Обратите внимание на регион здесь, он должен соответствовать маленькому A
Доступ к настройкам пароля для учетных данных
Посмотреть детали склада
Запомните адрес доступа интрасети, то есть частной сети
Начать привет мир
Сначала сделайте зеркало
Загрузите последний образ nginx
[root@mldong yaml]# docker pull nginx:latest
latest: Pulling from library/nginx
8559a31e96f4: Pull complete
8d69e59170f7: Pull complete
3f9f1ec1d262: Pull complete
d1f5ff4f210d: Pull complete
1e22bfa8652e: Pull complete
Digest: sha256:21f32f6c08406306d822a0e6e8b7dc81f53f336570e852e25fbe1e3e3d0d0133
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
Добавляйте теги к изображениям
[root@mldong yaml]# docker tag nginx:latest registry-vpc.cn-zhangjiakou.aliyuncs.com/mldong/java/nginx:latest
Войти на зеркальный склад
docker login --username=524719755@qq.com registry-vpc.cn-zhangjiakou.aliyuncs.com
Имя пользователя, используемое для входа, — это полное имя учетной записи Alibaba Cloud, а пароль — тот, который устанавливается при активации службы.
Вы можете изменить пароль для учетных данных на странице «Учетные данные для доступа».
Отправьте образ в зеркальный репозиторий
[root@mldong yaml]# docker push registry-vpc.cn-zhangjiakou.aliyuncs.com/mldong/java/nginx:latest
The push refers to repository [registry-vpc.cn-zhangjiakou.aliyuncs.com/mldong/java/nginx]
f978b9ed3f26: Pushed
9040af41bb66: Pushed
7c7d7f446182: Pushed
d4cf327d8ef5: Pushed
13cb14c2acd3: Pushed
latest: digest: sha256:0efad4d09a419dc6d574c3c3baacb804a530acd61d5eba72cb1f14e1f5ac0c8f size: 1362
Опубликовать сервис nginx с помощью kubectl
добавлятьns.yaml
документ
[root@mldong yaml]# cat ns.yaml
apiVersion: v1
kind: Namespace
metadata:
name: mldong-test
добавить однуnginx_deployment.yaml
документ
[root@mldong nginx]# cat nginx_deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-pod
namespace: mldong-test
spec:
selector:
matchLabels:
app: nginx-pod
replicas: 1
template:
metadata:
labels:
app: nginx-pod
spec:
containers:
- name: nginx
image: registry-vpc.cn-zhangjiakou.aliyuncs.com/mldong/java/nginx:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
name: port
protocol: TCP
добавить однуnginx_service.yaml
[root@mldong nginx]# cat nginx_service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-nodeport
namespace: mldong-test
spec:
type: NodePort
ports:
- port: 80
targetPort: 80
nodePort: 32180
selector:
app: nginx-pod
Создать пространство имен
[root@mldong yaml]# kubectl apply -f ns.yaml
namespace/mldong-test created
просмотреть все пространства имен
[root@mldong yaml]# kubectl get ns
NAME STATUS AGE
default Active 44m
kube-node-lease Active 44m
kube-public Active 44m
kube-system Active 44m
mldong-test Active 87s
создать модуль
[root@mldong nginx]# kubectl apply -f nginx_deployment.yaml
deployment.apps/nginx-pod created
Просмотр модулей в указанном пространстве имен
[root@mldong nginx]# kubectl get pods -n mldong-test
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-pod-66bbff87f9-vzlvs 0/1 ContainerCreating 0 3s <none> cn-zhangjiakou.172.26.22.119 <none> <none>
[root@mldong nginx]# kubectl get pods -n mldong-test
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-pod-66bbff87f9-vzlvs 1/1 Running 0 15s 172.20.0.7 cn-zhangjiakou.172.26.22.119 <none> <none>
создать сервис
[root@mldong nginx]# kubectl apply -f nginx_service.yaml
service/nginx-nodeport created
Просмотр службы в указанном пространстве имен
[root@mldong nginx]# kubectl get service -n mldong-test
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-nodeport NodePort 172.21.1.95 <none> 80:32180/TCP 76s
Убедитесь, что служба работает нормально
посетить любой узел
172.26.22.118 worker1
172.26.22.119 worker2
[root@mldong nginx]# curl worker1:32180
[root@mldong nginx]# curl worker2:32180
Обычный возврат выглядит следующим образом
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
На этом Hello world закончился. Чтобы сэкономить деньги, давайте научим вас, как остановить или разблокировать службу. Деньги не будут взиматься после остановки и отпускания.
Отключить настройки
Списание экземпляра
Есть два способа деактивировать инстанс: один — остановить только без зарядки, а другой — полностью освободить инстанс. Если вы хотите использовать его часто для практики, рекомендуется использовать метод без остановки, чтобы вам не нужно было перестраивать кластер в следующий раз.
остановить без комиссии метод
единственная остановка
Статус экземпляра -> Остановлен
пакетная остановка
останавливаться
остановился
Отключить балансировку нагрузки
балансировка нагрузки поиска
Полностью освободить ресурсы экземпляра
Защита выпуска экземпляра должна быть изменена перед настройками выпуска экземпляра — Отмена
Настройки выпуска инстанса
Статус экземпляра -> Настройки выпуска
После остановки экземпляра сервера ECS его можно перезапустить, если вы хотите использовать его снова. Ребиллинг будет производиться после запуска.
имя счета
резюме
В этой статье используется служба контейнеров Alibaba Cloud для быстрого создания управляемой версии Kubernetes, чтобы быстрее изучить применение k8s. И оплата по мере использования, стоимость не слишком высока. Дешевле, чем модернизировать собственный компьютер. Разумеется, помимо Alibaba Cloud аналогичные сервисы будут и у Tencent Cloud и Huawei Cloud. Вот просто чтобы дать вам представление. На самом деле, не всегда думайте о том, чтобы построить его самостоятельно, это действительно сложно, если вы не профессионал. Последующие статьи серии k8s также будут основаны на текущем кластере. Надежда иметь друзей, чтобы учиться вместе.
Статьи по Теме
Практический опыт работы с k8s-ConfigMap и постоянным хранилищем
Возьмите вас за руку, чтобы поиграть с расширенным Dockerfile и docker-compose k8s-docker
Рука об руку с вами, чтобы играть в развертывание проектов Springboot одним щелчком мыши k8s
Рука об руку с вами, чтобы играть в проект k8s-deploy vue одним щелчком мыши
Рука об руку, чтобы взять вас в игру k8s-подробное объяснение общих объектов
Рука об руку с вами, чтобы играть на линии установки и сборки k8s-jenkins
Практика с вами, чтобы поиграть с синтаксисом конвейера k8s-jenkins
Рука об руку, чтобы провести вас через конвейер k8s-jenkins для выпуска проекта springboot.
Взять вас за руку, чтобы поиграть в конвейер k8s-jenkins и выпустить проект vue.
Рука об руку с вами, чтобы играть в k8s-Health Check Survival Probe и Readiness Probe
Рука об руку с вами, чтобы построить кластер k8s на k8s-win10
Рука об руку с вами, чтобы создать службу среды разработки на k8s или k8s-win10