180 lines
4.7 KiB
Markdown
180 lines
4.7 KiB
Markdown
# Static pods
|
||
|
||

|
||
|
||
як бачимо контейнери запускаються все працює
|
||
прийшла пора розбиратись із kubectl
|
||
|
||
для початку його потрібно завантажити
|
||
```bash
|
||
wget -q --show-progress --https-only --timestamping \
|
||
https://storage.googleapis.com/kubernetes-release/release/v1.21.0/bin/linux/amd64/kubelet
|
||
```
|
||
|
||
```bash
|
||
{
|
||
chmod +x kubelet
|
||
sudo mv kubelet /usr/local/bin/
|
||
}
|
||
```
|
||
|
||
```bash
|
||
cat <<EOF | sudo tee /etc/systemd/system/kubelet.service
|
||
[Unit]
|
||
Description=kubelet: The Kubernetes Node Agent
|
||
Documentation=https://kubernetes.io/docs/home/
|
||
Wants=network-online.target
|
||
After=network-online.target
|
||
|
||
[Service]
|
||
ExecStart=/usr/local/bin/kubelet \\
|
||
--container-runtime=remote \\
|
||
--container-runtime-endpoint=unix:///var/run/containerd/containerd.sock \\
|
||
--image-pull-progress-deadline=2m \\
|
||
--file-check-frequency=10s \\
|
||
--pod-manifest-path='/etc/kubernetes/manifests/' \\
|
||
--v=10
|
||
Restart=always
|
||
StartLimitInterval=0
|
||
RestartSec=10
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
EOF
|
||
```
|
||
|
||
```bash
|
||
{
|
||
sudo systemctl daemon-reload
|
||
sudo systemctl enable kubelet
|
||
sudo systemctl start kubelet
|
||
}
|
||
```
|
||
|
||
```bash
|
||
sudo systemctl status kubelet
|
||
```
|
||
|
||
```
|
||
● kubelet.service - kubelet: The Kubernetes Node Agent
|
||
Loaded: loaded (/etc/systemd/system/kubelet.service; enabled; vendor preset: enabled)
|
||
Active: active (running) since Sat 2023-04-15 22:01:06 UTC; 2s ago
|
||
Docs: https://kubernetes.io/docs/home/
|
||
Main PID: 16701 (kubelet)
|
||
Tasks: 7 (limit: 2275)
|
||
Memory: 14.8M
|
||
CGroup: /system.slice/kubelet.service
|
||
└─16701 /usr/local/bin/kubelet --container-runtime=remote --container-runtime-endpoint=unix:///var/run/containerd/containerd.sock --image-pull-progress-deadline=2m --v=2
|
||
...
|
||
```
|
||
|
||
# run static pod
|
||
знач нам потрбіно створити директорію для маніфестів
|
||
```bash
|
||
mkdir /etc/kubernetes
|
||
mkdir /etc/kubernetes/manifests
|
||
```
|
||
|
||
|
||
```bash
|
||
cat <<EOF> /etc/kubernetes/manifests/static-pod.yml
|
||
apiVersion: v1
|
||
kind: Pod
|
||
metadata:
|
||
name: static-pod
|
||
labels:
|
||
app: static-pod
|
||
spec:
|
||
hostNetwork: true
|
||
containers:
|
||
- name: busybox
|
||
image: busybox
|
||
command: ["sh", "-c", "while true; do echo 'Hello from static pod'; sleep 5; done"]
|
||
EOF
|
||
```
|
||
|
||
а тепепр поки він його знайде і запустить, ми встановимо crictl
|
||
```bash
|
||
wget -q --show-progress --https-only --timestamping \
|
||
https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.21.0/crictl-v1.21.0-linux-amd64.tar.gz
|
||
```
|
||
|
||
```bash
|
||
{
|
||
tar -xvf crictl-v1.21.0-linux-amd64.tar.gz
|
||
chmod +x crictl
|
||
sudo mv crictl /usr/local/bin/
|
||
}
|
||
```
|
||
|
||
трохи відконфігуруємо
|
||
```bash
|
||
cat <<EOF> /etc/crictl.yaml
|
||
runtime-endpoint: unix:///run/containerd/containerd.sock
|
||
image-endpoint: unix:///run/containerd/containerd.sock
|
||
timeout: 10
|
||
debug: false
|
||
EOF
|
||
```
|
||
|
||
ну і тепер поки все встановлювалось то наш под мав піднятись
|
||
спробуємо подивитись
|
||
```bash
|
||
crictl pods
|
||
```
|
||
|
||
тут є жжназва сервера
|
||
```
|
||
POD ID CREATED STATE NAME NAMESPACE ATTEMPT RUNTIME
|
||
884c50605b546 9 minutes ago Ready static-pod-example-server default 0 (default)
|
||
```
|
||
|
||
і контейнери
|
||
```bash
|
||
crictl ps
|
||
```
|
||
|
||
```
|
||
CONTAINER IMAGE CREATED STATE NAME ATTEMPT POD ID
|
||
4cc95ba71e9d6 7cfbbec8963d8 10 minutes ago Running busybox 0 884c50605b546
|
||
```
|
||
|
||
ну і також можна глянути логи
|
||
```bash
|
||
crictl logs $(crictl ps -q)
|
||
```
|
||
|
||
```
|
||
Hello from static hostNetwork pod
|
||
Hello from static hostNetwork pod
|
||
Hello from static hostNetwork pod
|
||
Hello from static hostNetwork pod
|
||
Hello from static hostNetwork pod
|
||
Hello from static hostNetwork pod
|
||
Hello from static hostNetwork pod
|
||
Hello from static hostNetwork pod
|
||
Hello from static hostNetwork pod
|
||
Hello from static hostNetwork pod
|
||
```
|
||
|
||
такс, ну на цьому нам потрібно почитити все після себе
|
||
|
||
```bash
|
||
rm /etc/kubernetes/manifests/static-pod.yml
|
||
```
|
||
|
||
тепер має видалитись контейнер, але потрібно трохи почекати
|
||
```bash
|
||
crictl ps
|
||
```
|
||
|
||
тут пусто
|
||
|
||
```bash
|
||
crictl pods
|
||
```
|
||
|
||
і тут з часом також має стати пусто
|
||
|
||
ну всьо, на цьому на сьогодні все поки
|
||
далі будемо розбиратись із іншими компонентами кудетнетесу |