This commit is contained in:
2023-01-16 22:54:37 +07:00
commit def2185721
4 changed files with 131 additions and 0 deletions

17
1.Cluster/README.md Normal file
View File

@@ -0,0 +1,17 @@
# Подготовка
* Необходимо 3 ноды (с докером) с белыми адресами и балансер.
* Так же нужно подготовить субдомен для балансера и алиасы на него для
* argo
* keygloack
* id
## Управление
управлять будем с [линзы](https://k8slens.dev)
## Разворачиваем тестовый кластер
1. rke up
2. install cert-manager
3. install longhorn with 2 replicas in storageClass

View File

@@ -0,0 +1,21 @@
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: orc-letsencrypt-issuer
spec:
acme:
# The ACME server URL
server: https://acme-v02.api.letsencrypt.org/directory
# Email address used for ACME registration
email: vasyakrg@gmail.com
# Name of a secret used to store the ACME account private key from step 3
privateKeySecretRef:
name: orc-letsencrypt-private-key
# Enable the HTTP-01 challenge provider
solvers:
# An empty selector will 'match' all Certificate resources that
# reference this Issuer.
- selector: {}
http01:
ingress:
class: nginx

59
1.Cluster/cluster.yml Normal file
View File

@@ -0,0 +1,59 @@
cluster_name: k8s-test
kubernetes_version: v1.23.14-rancher1-1
ignore_docker_version: true
nodes:
- address: 65.109.190.72
hostname_override: node1
user: root
labels:
worker: yes
ingress: yes
location: nsk
role: [controlplane, worker, etcd]
- address: 65.109.190.74
hostname_override: node2
user: root
labels:
worker: yes
ingress: yes
location: nsk
role: [controlplane, worker, etcd]
- address: 135.181.206.109
hostname_override: node3
user: root
labels:
worker: yes
ingress: yes
location: nsk
role: [controlplane, worker, etcd]
services:
etcd:
snapshot: true
creation: 6h
retention: 30h
kube-controller:
extra_args:
terminated-pod-gc-threshold: 100
authentication:
strategy: x509
sans:
- "rke.xxx-net.ru"
ingress:
provider: nginx
node_selector:
ingress: yes
tolerations:
- key: node-role.kubernetes.io/controlplane
operator: Exists
effect: NoSchedule
- key: node-role.kubernetes.io/etcd
operator: Exists
effect: NoExecute
extra_args:
http-port: 80
https-port: 443

34
README.md Normal file
View File

@@ -0,0 +1,34 @@
# Курс по ArgoCD + Keycloak
## Научимся
1. разворачивать тестовый кластер
2. устанавливать зависимости для комфортной работы
3. разворачивать рабочие кластера ArgoCD и Keycloak
4. разворачивать FreeIPA для ведения внешней базы данных пользователей
5. собирать все это в кучу и настраивать взаимодействие
6. напишим приложение на JS и подключим к нему авторизацию через Keycloak + FreeIPA
## Порядок действий
1. создаем 3 ноды под куб, одну ВМ под FreeIPA
для куба идеально - ubuntu 20.04
для IPA - fedora 35
2. поднимаем куб и стаавим зависимости для работы по [гайду](./1.Cluster/README.md)
3. поднимаем ArgoCD по [гайду](./2.ArgoCD/README.md)
4. через ArgoCD разворачиваем Keycloak в виде первого приложения
5. на отдельную машину ставим FreeIPA, минимально настраиваем
6. подключаем между собой все компоненты
## Видео к курсу
- [видео]()
### Автор
Vassiliy Yegorov
- [школа](https://realmanual.ru)
- [youtube](https://youtube.com/realmanual)
- [телега](https://t.me/realmanual_group)