Iniciei um cluster k8s em um servidor com a configuração abaixo:
SO: Ubuntu 2022 LTS
Tempo de execução do contêiner: containerd
CNI: Absolutamente nada instalado!
Iniciador de cluster: Kubeadm
configurações de inicialização:
apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
- system:bootstrappers:kubeadm:default-node-token
token: abcdef.0123456789abcdef
ttl: 24h0m0s
usages:
- signing
- authentication
kind: InitConfiguration
localAPIEndpoint:
bindPort: 6443
nodeRegistration:
criSocket: unix:///var/run/containerd/containerd.sock
imagePullPolicy: IfNotPresent
taints: null
---
apiServer:
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns: {}
etcd:
local:
dataDir: /var/lib/etcd
kind: ClusterConfiguration
kubernetesVersion: 1.29.0
networking:
dnsDomain: cluster.local
serviceSubnet: 10.96.0.0/12
scheduler: {}
---
kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
cgroupDriver: systemd
A dúvida que tenho é a seguinte. Eu li em muitos artigos (bem como em documentos do k8s) que o CNI é responsável por atribuir uma interface de rede a um contêiner (ou pod). Meu cluster ainda não tem um CNI, mas pods como , kube-apiserver
e esses pods de inicialização são executados sem um CNI. Como isso é possível?kube-proxy
etcd
PS Ficarei muito grato se links úteis para documentos forem fornecidos.
Desde já, obrigado :)
Os pods estáticos definidos usando um arquivo yaml no
/ect/kubernetes/manifests
nó Kubernetes são gerenciados diretamente pelo daemon kubelet em um nó específico.etcd
ekube-apiserver
são exemplos de pods estáticos.kube-proxy
é um DaemonSet e é instalado ao usar okubeadm
.Os pods estáticos, bem como os pods executados como parte de um DaemonSet, terão o endereço IP do nó em que estão sendo executados, portanto, não dependem do CNI nesse sentido. Pense nisso: se a instalação do CNI exigir o uso de
kubectl
, não seria possível sem, por exemplo, o servidor API instalado e funcionando.https://kubernetes.io/docs/tasks/configure-pod-container/static-pod/
https://kubernetes.io/docs/reference/setup-tools/kubeadm/implementation-details/