
sudo apt udpate
sudo apt upgrade
Nainštalujte K3s
curl -sfL https://get.k3s.io | sh -
Môžete skontrolovať stav nodov
sudo kubectl get nodes
Výstup:
NAME STATUS ROLES AGE VERSION
ivan Ready control-plane,master 5s v1.33.5+k3s1
Konfigurácia kubectl (aby si ho mohol používať bez sudo):
mkdir -p $HOME/.kube
sudo cp /etc/rancher/k3s/k3s.yaml $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Nasadenie Wiki.js
Vytvoríme yaml
nano wikijs.yaml
Skpírujeme do neho
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wikijs-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wikijs
spec:
replicas: 1
selector:
matchLabels:
app: wikijs
template:
metadata:
labels:
app: wikijs
spec:
containers:
- name: wikijs
image: requarks/wiki:latest
env:
- name: DB_TYPE
value: "sqlite"
- name: DB_FILE
value: "/data/database.sqlite"
ports:
- containerPort: 3000
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
persistentVolumeClaim:
claimName: wikijs-data
---
apiVersion: v1
kind: Service
metadata:
name: wikijs-service
spec:
type: NodePort
selector:
app: wikijs
ports:
- protocol: TCP
port: 80
targetPort: 3000
nodePort: 30080
Následne uložíme
Nasadíme Wiki.js
sudo kubectl apply -f wikijs.yaml
sudo kubectl get pods
sudo kubectl get svc
Teraz otvorte webpvý prehliadač a zadajte IP adresu daného servera v tvare:
http://X.X.X.X:30080

Nasadenie WordPress
Vytvoríme yaml
nano wordpress.yaml
Skopírujeme do neho:
# PersistentVolumeClaim pre MariaDB
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mariadb-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
---
# PersistentVolumeClaim pre WordPress
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wordpress-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
---
# MariaDB Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: mariadb
spec:
replicas: 1
selector:
matchLabels:
app: mariadb
template:
metadata:
labels:
app: mariadb
spec:
containers:
- name: mariadb
image: mariadb:10.11
env:
- name: MYSQL_ROOT_PASSWORD
value: "rootpass"
- name: MYSQL_DATABASE
value: "wordpress"
- name: MYSQL_USER
value: "wpuser"
- name: MYSQL_PASSWORD
value: "wppass"
volumeMounts:
- name: mariadb-storage
mountPath: /var/lib/mysql
volumes:
- name: mariadb-storage
persistentVolumeClaim:
claimName: mariadb-pvc
---
apiVersion: v1
kind: Service
metadata:
name: mariadb
spec:
selector:
app: mariadb
ports:
- protocol: TCP
port: 3306
---
# WordPress Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress
spec:
replicas: 1
selector:
matchLabels:
app: wordpress
template:
metadata:
labels:
app: wordpress
spec:
containers:
- name: wordpress
image: wordpress:6.6-php8.2-apache
env:
- name: WORDPRESS_DB_HOST
value: mariadb
- name: WORDPRESS_DB_NAME
value: wordpress
- name: WORDPRESS_DB_USER
value: wpuser
- name: WORDPRESS_DB_PASSWORD
value: wppass
ports:
- containerPort: 80
volumeMounts:
- name: wordpress-storage
mountPath: /var/www/html
volumes:
- name: wordpress-storage
persistentVolumeClaim:
claimName: wordpress-pvc
---
apiVersion: v1
kind: Service
metadata:
name: wordpress-service
spec:
type: NodePort
selector:
app: wordpress
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30081
Spustenie WordPress
kubectl apply -f wordpress.yaml
kubectl get pods
kubectl get svc
Zadáme IP adresu s portom v tvare:
http://X.X.X.X:30081

