# апі сервер ![image](./img/05_cluster_architecture_apiserver.png "Kubelet") так як ми уже налаштували бд - можна починати налаштовувати і сам куб апі сервер, будемо пробувати щось четапити ```bash { cat > service-account-csr.json < admin-csr.json < encryption-config.yaml < ... ``` ```bash wget -q --show-progress --https-only --timestamping \ https://storage.googleapis.com/kubernetes-release/release/v1.21.0/bin/linux/amd64/kubectl \ && chmod +x kubectl \ && sudo mv kubectl /usr/local/bin/ ``` ``` { kubectl config set-cluster kubernetes-the-hard-way \ --certificate-authority=ca.pem \ --embed-certs=true \ --server=https://127.0.0.1:6443 kubectl config set-credentials admin \ --client-certificate=admin.pem \ --client-key=admin-key.pem \ --embed-certs=true kubectl config set-context default \ --cluster=kubernetes-the-hard-way \ --user=admin kubectl config use-context default } ``` ```bash kubectl version --kubeconfig=admin.kubeconfig ``` тепер можна починати створбвати поди і все має чотко працювати ```bash { HOST_NAME=$(hostname -a) cat < pod.yaml apiVersion: v1 kind: Pod metadata: name: hello-world spec: serviceAccountName: hello-world containers: - name: hello-world-container image: busybox command: ['sh', '-c', 'while true; do echo "Hello, World!"; sleep 1; done'] nodeName: ${HOST_NAME} EOF cat < sa.yaml apiVersion: v1 kind: ServiceAccount metadata: name: hello-world automountServiceAccountToken: false EOF kubectl apply -f sa.yaml --kubeconfig=admin.kubeconfig kubectl apply -f pod.yaml --kubeconfig=admin.kubeconfig } ``` ```bash kubectl get pod --kubeconfig=admin.kubeconfig ``` ``` NAME READY STATUS RESTARTS AGE hello-world 0/1 Pending 0 29s ``` такс под є але він у статусі пендінг, якесь неподобство в дійсності, зоч у нас кублєт і є але він про сервер нічого незнає а сервер про нього потрібно цю проблємку вирішити Next: [Apiserver - Kubelet integration](./docs/06-apiserver-kubelet.md)