115 lines
4.0 KiB
Markdown
115 lines
4.0 KiB
Markdown
```bash
|
|
|
|
# storageclass
|
|
apiVersion: storage.k8s.io/v1
|
|
kind: StorageClass
|
|
metadata:
|
|
name: local-sc
|
|
annotations:
|
|
storageclass.kubernetes.io/is-default-class: "true"
|
|
provisioner: kubernetes.io/no-provisioner
|
|
reclaimPolicy: Retain # default value is Delete
|
|
volumeBindingMode: WaitForFirstConsumer
|
|
|
|
# -------------
|
|
|
|
# multipod deployment
|
|
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
labels:
|
|
app: logging-deployment
|
|
name: logging-deployment
|
|
namespace: logging-ns
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: logging-deployment
|
|
strategy: {}
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: logging-deployment
|
|
spec:
|
|
containers:
|
|
- command: ["/bin/sh", "-c"]
|
|
args:
|
|
- |
|
|
mkdir -p /var/log/app
|
|
while true; do
|
|
echo "Log entry" >> /var/log/app/app.log
|
|
sleep 5
|
|
done
|
|
image: busybox
|
|
name: busybox
|
|
volumeMounts:
|
|
- name: log-vol
|
|
mountPath: /var/log/app
|
|
- name: log-agent
|
|
image: busybox
|
|
command: ["/bin/sh", "-c"]
|
|
args:
|
|
- |
|
|
touch /var/log/app/app.log
|
|
tail -f /var/log/app/app.log
|
|
volumeMounts:
|
|
- name: log-vol
|
|
mountPath: /var/log/app
|
|
volumes:
|
|
- name: log-vol
|
|
emptyDir: {}
|
|
|
|
# -----------
|
|
|
|
kubectl create ingress webapp-ingress -n ingress-ns --rule="kodekloud-ingress.app/*=webapp-svc:80" --class=nginx -o yaml --dry-run > ingress.yaml
|
|
|
|
# --------
|
|
|
|
# create deployment, upgrade image
|
|
kubectl create deployment nginx-deploy --image=nginx:1.16 --replicas=1
|
|
kubectl set image deployment/nginx-deploy nginx=nginx:1.17
|
|
|
|
# --------
|
|
|
|
cat csr.yaml
|
|
apiVersion: certificates.k8s.io/v1
|
|
kind: CertificateSigningRequest
|
|
metadata:
|
|
name: john-developer # example
|
|
spec:
|
|
# This is an encoded CSR. Change this to the base64-encoded contents of myuser.csr
|
|
request: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlJQ1ZEQ0NBVHdDQVFBd0R6RU5NQXNHQTFVRUF3d0VhbTlvYmpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRApnZ0VQQURDQ0FRb0NnZ0VCQU5BTEhVNlMxSVE1WWU4QkE1SW0vZlJlVlhaQ0QrUTUxT0NocmtWdXZ2Y0RFcERRCjZvQ2hjRXJoOUVYWlEwL0g4eEVOSkZoTzY1cyszLzVqRmRWZXRWY2RrZk1UVWJJdUtvS092R3ZWSlU4dWowWnQKUy9KRjRGQkQvOXdndXk1azYvY3hFSlF1cHMzLzBwTCtqUi9rK01SM0ZscWZCZG1WV1dVMmxmYm5TWElsQnFLMwova3RMcUhadG9oT2ZVN0hYR2gwUEY5YThCaXpmK0REdE8ya3Z1VFhMMHBJV3FyVkx6QUhPZVdId1phVXpmUmUvCnR1UjFncHF2a2dTNFJPTWdHeExucHZZcXgyV0cxbDNGaTBzTDVxM1F0dkhzelMrZjQwcWVzd2pnU0JQcTM1amQKR1hIakFJdnY4MFliSWxub0FTd0oyUzR0Z3NvNG4yMitZc2FkTXpVQ0F3RUFBYUFBTUEwR0NTcUdTSWIzRFFFQgpDd1VBQTRJQkFRQ01reFAxWElaWUhSUHNuVHdlRGUzTDIzeWhJLzVlOWltbzZrTWd0MVhxRXFNeVJvTUc4dStKCmlPNmFHVFpMSE5QbFVKR3pqSWpGR2RsUUtDMVpiOEUyUVpsOFhjNjA5SzlTOFlFVjg2Y0tNL2xxR1Q3OFp1blEKb1ljRWpwRUZYUHMwQkZMQlYwRnRVeDNVd2JWYmltMGErOEtWSjhFNllnSjcrb2JOaURNc0NpR21hK1J0K0hmRwpHcE1vaEdhQXRoSFhuSEtYbUk1VjNBbmtKM0c3am1rdThWY1ZBYkl3NWs2L1RUQjBZUnQxUXdIZGxMUGU1ZVc4ClBCYnB1bEpaMWxocWhxV01lblVIOU9UTVI4b0ZiazFzaVpSN2VKeU5GMWtWYlRkQWVLT2FsMVk3TlcxamY1Y0gKREhwcFBZRW84ZlJ1UE5GTXFCNTlxQkM4bEF5MGd0MlcKLS0tLS1FTkQgQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCg==
|
|
signerName: kubernetes.io/kube-apiserver-client
|
|
expirationSeconds: 86400 # one day
|
|
usages:
|
|
- client auth
|
|
|
|
kubectl certificate approve john
|
|
kubectl certificate approve john-developer
|
|
|
|
kubectl create role developer --verb=create,list,get,update,delete --resource=pods -n development
|
|
kubectl create rolebinding developer --role developer -n development --user=john
|
|
|
|
|
|
# ---------
|
|
|
|
kubectl run nginx-resolver --image=nginx
|
|
kubectl expose pod nginx-resolver --port=80 --name=nginx-resolver-service
|
|
|
|
k run test-dns --image=busybox:1.28 --rm -it --restart=Never \
|
|
-- nslookup nginx-resolver-service > /root/CKA/nginx.svc
|
|
|
|
k run test-dns --image=busybox:1.28 --rm -it --restart=Never -- nslookup 172-17-1-15.default.pod.cluster.local > /root/CKA/nginx.pod
|
|
|
|
# -----
|
|
# nginx-critical
|
|
|
|
k run nginx-critical --image=nginx -o yaml --dry-run > /etc/kubernetes/manifests/nginx-critical.yaml
|
|
|
|
# ------
|
|
# HPA
|
|
kubectl autoscale deployment backend-deployment --min=3 --max=15 --memory=65% --name backend-hpa -n backend
|
|
|