$ kubectl apply -f svjis-namespace.yml
$ kubectl apply -f svjis-configmap.yml
$ kubectl apply -f svjis-secret.yml
$ kubectl apply -f svjis-db.yml
$ kubectl apply -f svjis-app.yml
Pro přístup k aplikaci je třeba spustit externí službu. Tou může být buď load-balancer nebo ingress.
$ kubectl apply -f svjis-loadbalancer.yml
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.41.2/deploy/static/provider/cloud/deploy.yaml
$ kubectl get pod -n ingress-nginx
$ kubectl apply -f svjis-ingress.yml
$ kubectl get ingress -n svjis
$ kubectl -n svjis cp create-schema.sh svjis-db-statefulset-0:/firebird/create-schema.sh
$ kubectl -n svjis exec -it svjis-db-statefulset-0 -- bash "/firebird/create-schema.sh"
- Spusťte aplikaci na adrese http://localhost:8080 (v případě ingressu aplikace běží na https://svjis.com/).
- Přihlašte se jako
admin
heslo jemasterkey
(po přihlášení si změňte heslo). - Proveďte konfiguraci aplikace dle Dokumentace.
Pokud používáte Ingress, tak můžete nasadit certifikát pro vaši doménu.
Certifikát lze získat od různých autorit různými způsoby. Uvedu zde jeden způsob jak získat certifikát od Let's Encrypt. Co budete potřebovat:
- Budete potřebovat přístup k editaci zónového souboru DNS vaší domény.
- Stáhněte si bash skript getssl.
Vytvořte si konfiguraci pro vaší doménu (místo svjis.com vždy uveďte vaší doménu).
$ getssl -c svjis.com
Upravte vygenerovanou konfiguraci $HOME/.getssl/getssl.cfg
.
# The staging server is best for testing (hence set as default)
#CA="https://acme-staging-v02.api.letsencrypt.org"
# This server issues full certificates, however has rate limits
CA="https://acme-v02.api.letsencrypt.org"
...
VALIDATE_VIA_DNS="true"
DNS_ADD_COMMAND="dns_add_acme_challenge.sh"
DNS_DEL_COMMAND="dns_del_acme_challenge.sh"
dns_add_acme_challenge.sh:
#!/bin/bash
fulldomain="$1"
token="$2"
echo "$fulldomain $token" > "dns_add_acme_challenge.output"
echo "Add $token into _acme-challenge.svjis.com TXT record."
read -p "Press any key to resume ..."
dns_del_acme_challenge.sh:
#!/bin/bash
fulldomain="$1"
echo "$fulldomain" > "dns_del_acme_challenge.output"
Pošlete žádost na vygenerování certifikátu
$ getssl svjis.com
Vložte token do _acme-challenge.az.svjis.com
TXT záznamu jakmile o to budete požádáni. Po vygenerování certifikátu TXT záznam zase odstraňte.
Vytvořte secret typu kubernetes.io/tls
s certifikátem
$ kubectl -n svjis create secret tls svjis.com --key "svjis.com.key" --cert "svjis.com.crt"
Odkomentujte následující část konfigurace v souboru svjis-ingress.yml
tls:
- hosts:
- svjis.com
secretName: svjis.com
Restartujte ingress
$ kubectl delete -f svjis-ingress.yml
$ kubectl apply -f svjis-ingress.yml
Odstranění se provede v opačném pořadí než spouštění.
$ kubectl delete -f svjis-ingress.yml
$ kubectl delete -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.41.2/deploy/static/provider/cloud/deploy.yaml
$ kubectl delete -f svjis-loadbalancer.yml
$ kubectl delete -f svjis-app.yml
$ kubectl delete -f svjis-db.yml
$ kubectl delete -f svjis-secret.yml
$ kubectl delete -f svjis-configmap.yml
$ kubectl delete -f svjis-namespace.yml
$ kubectl apply -f <yml>
$ kubectl delete -f <yml>
$ kubectl get nodes | pod | services | replicaset | deployment
$ kubectl get pod -o wide
$ kubectl logs <pod>
$ winpty kubectl exec -it [podname] -- bash
Secret values are base64 encoded
$ echo -n 'username' | base64
Watching pod
$ kubectl get pod --watch