asixcloud - k8s

sessió 00

imprescindible per aprofitar eks
fitxers video

sessió 01

posar en marxa un cluster de kubernetes en aws i desplegar un servei (deployment + servei)

sessió 02

instal·la eksctl

# for ARM systems, set ARCH to: `arm64`, `armv6` or `armv7`
ARCH=amd64
PLATFORM=$(uname -s)_$ARCH

curl -sLO "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_$PLATFORM.tar.gz"

# (Optional) Verify checksum
curl -sL "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_checksums.txt" | grep $PLATFORM | sha256sum --check

tar -xzf eksctl_$PLATFORM.tar.gz -C /tmp && rm eksctl_$PLATFORM.tar.gz

sudo mv /tmp/eksctl /usr/local/bin

recuperació (elegant) de paràmetres

export NOM_CLUSTER=demo-cluster-001
export NOM_WORKER_NODE_GROUP=demo-worker-001
export AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)

export AWS_SUBNET_1A=`aws ec2 describe-subnets --filter "Name=vpc-id,Values=$(aws ec2 describe-vpcs --filter "Name=is-default,Values=true" --query "Vpcs[].VpcId" --output text
)" "Name=availability-zone,Values=[us-east-1a]" --query "Subnets[].SubnetId" --output text`

export AWS_SUBNET_1B=`aws ec2 describe-subnets --filter "Name=vpc-id,Values=$(aws ec2 describe-vpcs --filter "Name=is-default,Values=true" --query "Vpcs[].VpcId" --output text
)" "Name=availability-zone,Values=[us-east-1b]" --query "Subnets[].SubnetId" --output text`

demo eksctl

cat > demo-eks-eksctl.yaml << EOT
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: ${NOM_CLUSTER}
  region: us-east-1  # Canvieu per la vostra regió

iam:
  serviceRoleARN: arn:aws:iam::${AWS_ACCOUNT_ID}:role/LabRole
    #serviceRoleARN: arn:aws:iam::${AWS_ACCOUNT_ID}:role/LabRole
    #  withOIDC: false
    #  serviceRolePermissionsBoundary: "arn:aws:iam::aws:policy/service-role/AWSServiceRoleForAmazonEKS"

nodeGroups:
  - name: ${NOM_WORKER_NODE_GROUP}
    instanceType: t3.medium
    desiredCapacity: 1
    privateNetworking: false
      #    instanceProfile: LabInstanceProfile
    iam:
      instanceRoleARN: arn:aws:iam::${AWS_ACCOUNT_ID}:role/LabRole

vpc:
  subnets:
    public:
      us-east-1a:
        id:  "${AWS_SUBNET_1A}" # ID de la subxarxa privada per defecte
      us-east-1b:
        id: "${AWS_SUBNET_1B}"  # ID de la subxarxa privada per defecte
  nat:
    gateway: Disable
EOT

engega cluster

cat demo-eks-eksctl.yaml | envsubst | eksctl create cluster -f - 

bye bye cluster

cat demo-eks-eksctl.yaml | envsubst | eksctl delete cluster -f - --force --disable-nodegroup-eviction

https://k8s.guide/

treball final

Implementa en diferents arquitectures (ec2/ecs/eks) i amb tot el que pugues demostrar (route53/certmanager/s3) un repte de cada bloc

IMPORTANT: CAL DOCUMENTAR la creació i gestió del servei i l'ús del servei (part client)

MÉS IMPORTANT: enviar progrés cada dia
https://forms.gle/XSSQfU3vaPmTHPYP6

ULTRA IMPORTANT: implementar les 6 etapes amb diferents elements; RECOMANACIÓ: primer amb els recursos mínims, i després afegir complexitats: dns, certificats, storage

dates límit - inajornable!!

7-9 de Maig >> 4 activitats !!!

21 Maig >> les 2 restants !!!

Streaming

01 - Audio

  • Navidrome
  • Icecast
  • AmpApache
  • Subsonic
  • lyrion

02 - Vídeo

  • Owncast + [ OBS || ffmpeg ]
  • restreamer
  • srs

Serveis de Subscripció

03 - Audio

  • castopod
  • audiobookself
  • podcastserver
  • podcastgenerator

04 - Vídeo

  • MediaCMS
  • streama
  • jellyfin

Serveis Bidireccionals

05 - Audio

  • 3cx
  • Asterisk/freepbx

06 - Vídeo

  • bigbluebutton
  • jitsi
  • openvidu