filmov
tv
EP14.3 - Use Zabbix to monitor Kubernetes (k8s)
Показать описание
In this episode
---
- install minikube(v1.34) using docker
- use kubeproxy to expose api
- install helm and zabbix Kubernetes-helm
- add a zabbix host with k8s template
install minikube
---
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
minikube start
install docker
---
sudo usermod -aG docker rui
newgrp docker
start minikube
---
minikube start
minikube status
minikube kubectl -- get pods -A
alias kubectl="minikube kubectl --"
echo 'alias kubectl="minikube kubectl --"' >> ~/.bashrc
kubectl get pods -A
ip info
---
minikube ip
192.168.49.2
$ docker network inspect minikube | grep -i ipv4address
"IPv4Address": "192.168.49.2/24",
$ kubectl cluster-info dump | grep cluster-cidr
"--cluster-cidr=10.244.0.0/16",
$ kubectl cluster-info dump | grep ip-range
"--service-cluster-ip-range=10.96.0.0/12",
"--service-cluster-ip-range=10.96.0.0/12",
$ kubectl describe node minikube | grep -i cidr
PodCIDR: 10.244.0.0/24
PodCIDRs: 10.244.0.0/24
kubeproxy
---
#kubectl proxy --address='192.168.122.211' --port=8001 --accept-hosts='^*$'
Deploy applications
---
kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0
kubectl expose deployment hello-minikube --type=NodePort --port=8080
kubectl get services hello-minikube
minikube service hello-minikube
kubectl port-forward --address 192.168.122.211 service/hello-minikube 7080:8080 &
curl 192.168.122.211:7080
create a unhealth pod
---
```
apiVersion: v1
kind: Pod
metadata:
name: unhealthy-pod
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
livenessProbe:
httpGet:
path: /fail # Intentionally specify a non-existent path to trigger a health check failure.
port: 80
initialDelaySeconds: 5
periodSeconds: 5
EOF
```
install helm
---
install zabbix kubernetes-helm
---
cd ~
cd kubernetes-helm
find: - name: ZBX_SERVER_HOST
update: value: "127.0.0.1" to 192.168.122.243
kubectl get namespaces
kubectl create namespace monitoring
kubectl get all -n monitoring
```token of sa
eyJhbGciOiJSUzI1NiIsImtpZCI6InZCeHpBR1ZIaEZxVWpyUm1ILUR1S3pUTU9NTFdXS0k3RTk2d1NKMnI2WE0ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJtb25pdG9yaW5nIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6InphYmJpeC1zZXJ2aWNlLWFjY291bnQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiemFiYml4LXNlcnZpY2UtYWNjb3VudCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImExY2Y0ZTBhLTRjNjAtNDlmYi1hMTg3LTcyNTgzMDU0NGY0MyIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDptb25pdG9yaW5nOnphYmJpeC1zZXJ2aWNlLWFjY291bnQifQ.fPhezdpTaPawXgyRNpInYz7SV4bSRDZdyHQPXBsVFfMmpamkBFWvJ07HwgX0dG0ZWTUMl9gLw8FMtLC1COaX_DfhtTh6Es-_3K0ynvBZZpKo8TZNkkrlrBP1Hperc0swowmqBybW5OBpS17EpL2JaA7wYEl3l-TaQdbs4biIqkxc7ff7O2k4hG7E0oq7XbLHhjoWmXduTAD8vP-T9LI1XtvAfHePirjAa9bWt1dnv69QTRju-csmJnHHFCoGL_19KD2yS0YLftnoe4midtiUElX1Zq07vNH6U_pIhy39tbMMM41TOWWAn4hFxUWJEddKrF4L6fK2WlAyvPLdSk3-dw
```
add host zabbix
---
host: k8s-note
template: Kubernetes nodes by HTTP, Kubernetes cluster state by HTTP
host: k8s-state
template: Kubernetes cluster state by HTTP
{$KUBE.API.TOKEN}
update {$KUBE.API.SERVER.URL} for
API servers discovery: API minikube
---
- install minikube(v1.34) using docker
- use kubeproxy to expose api
- install helm and zabbix Kubernetes-helm
- add a zabbix host with k8s template
install minikube
---
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
minikube start
install docker
---
sudo usermod -aG docker rui
newgrp docker
start minikube
---
minikube start
minikube status
minikube kubectl -- get pods -A
alias kubectl="minikube kubectl --"
echo 'alias kubectl="minikube kubectl --"' >> ~/.bashrc
kubectl get pods -A
ip info
---
minikube ip
192.168.49.2
$ docker network inspect minikube | grep -i ipv4address
"IPv4Address": "192.168.49.2/24",
$ kubectl cluster-info dump | grep cluster-cidr
"--cluster-cidr=10.244.0.0/16",
$ kubectl cluster-info dump | grep ip-range
"--service-cluster-ip-range=10.96.0.0/12",
"--service-cluster-ip-range=10.96.0.0/12",
$ kubectl describe node minikube | grep -i cidr
PodCIDR: 10.244.0.0/24
PodCIDRs: 10.244.0.0/24
kubeproxy
---
#kubectl proxy --address='192.168.122.211' --port=8001 --accept-hosts='^*$'
Deploy applications
---
kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0
kubectl expose deployment hello-minikube --type=NodePort --port=8080
kubectl get services hello-minikube
minikube service hello-minikube
kubectl port-forward --address 192.168.122.211 service/hello-minikube 7080:8080 &
curl 192.168.122.211:7080
create a unhealth pod
---
```
apiVersion: v1
kind: Pod
metadata:
name: unhealthy-pod
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
livenessProbe:
httpGet:
path: /fail # Intentionally specify a non-existent path to trigger a health check failure.
port: 80
initialDelaySeconds: 5
periodSeconds: 5
EOF
```
install helm
---
install zabbix kubernetes-helm
---
cd ~
cd kubernetes-helm
find: - name: ZBX_SERVER_HOST
update: value: "127.0.0.1" to 192.168.122.243
kubectl get namespaces
kubectl create namespace monitoring
kubectl get all -n monitoring
```token of sa
eyJhbGciOiJSUzI1NiIsImtpZCI6InZCeHpBR1ZIaEZxVWpyUm1ILUR1S3pUTU9NTFdXS0k3RTk2d1NKMnI2WE0ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJtb25pdG9yaW5nIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6InphYmJpeC1zZXJ2aWNlLWFjY291bnQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiemFiYml4LXNlcnZpY2UtYWNjb3VudCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImExY2Y0ZTBhLTRjNjAtNDlmYi1hMTg3LTcyNTgzMDU0NGY0MyIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDptb25pdG9yaW5nOnphYmJpeC1zZXJ2aWNlLWFjY291bnQifQ.fPhezdpTaPawXgyRNpInYz7SV4bSRDZdyHQPXBsVFfMmpamkBFWvJ07HwgX0dG0ZWTUMl9gLw8FMtLC1COaX_DfhtTh6Es-_3K0ynvBZZpKo8TZNkkrlrBP1Hperc0swowmqBybW5OBpS17EpL2JaA7wYEl3l-TaQdbs4biIqkxc7ff7O2k4hG7E0oq7XbLHhjoWmXduTAD8vP-T9LI1XtvAfHePirjAa9bWt1dnv69QTRju-csmJnHHFCoGL_19KD2yS0YLftnoe4midtiUElX1Zq07vNH6U_pIhy39tbMMM41TOWWAn4hFxUWJEddKrF4L6fK2WlAyvPLdSk3-dw
```
add host zabbix
---
host: k8s-note
template: Kubernetes nodes by HTTP, Kubernetes cluster state by HTTP
host: k8s-state
template: Kubernetes cluster state by HTTP
{$KUBE.API.TOKEN}
update {$KUBE.API.SERVER.URL} for
API servers discovery: API minikube