# Controller manager ![image](./img/07_cluster_architecture_controller_manager.png "Kubelet") для того щоб відчути весь смак - давайте почнемо із того що вернемось трохи не до конфігураційних всяких штук а до абстракцій кубернетесу і власне наша наступна абстракція - деплоймент тож давайте її створимо ```bash cat < deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: deployment spec: replicas: 1 selector: matchLabels: app: hello-world-deployment template: metadata: labels: app: hello-world-deployment spec: serviceAccountName: hello-world containers: - name: hello-world-container image: busybox command: ['sh', '-c', 'while true; do echo "Hello, World from deployment!"; sleep 1; done'] EOF kubectl apply -f deployment.yaml ``` ```bash kubectl get deploy ``` ``` NAME READY UP-TO-DATE AVAILABLE AGE nginx-deployment 0/1 0 0 24s ``` такс, щось пішло не так чомусь наші поди не створюються - а мають за те щоб поди створювались відповідає контроллєр менеджер, а у нас його немає тож давайте цю проблему вирішувати ```bash { cat > kube-controller-manager-csr.json < ... ``` ну контроллер менеджер як бачимо завівся, то може і поди створились? давайте перевіримо ```bash kubectl get pod ``` ``` NAME READY STATUS RESTARTS AGE hello-world 1/1 Running 0 27m nginx-deployment-5d9cbcf759-x4pk8 0/1 Pending 0 79s ``` такс, ну под уже сворився, але він ще у статусі пендінг якось не особо цікаво відповідь на питання чого по ще досі не запущений дуже проста ```bash kubectl get pod -o wide ``` ``` NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES hello-world 1/1 Running 0 31m 10.240.1.9 example-server nginx-deployment-5d9cbcf759-x4pk8 0/1 Pending 0 5m22s ``` бачимо що йому ніхто ще не проставив ноду, а без ноди кублєт сам не запустить под Next: [Scheduler](./08-scheduler.md)