static container
- API에게 요청 보내지 않음
- kubelet Daemon에 의해 동작되는 Pod
- API 서버 없이 특정 노드에 있는 kubelet 데몬에 의해 직접 관리
- /etc/kubernetes/manifests/ 디렉토리에 k8s yaml 파일을 저장 시 적용됨
- static pod 디렉토리 구성
# vi /var/lib/kubelet/config.yaml
...
staticPodPath: /etc/kubernetes/manifests
디렉토리 수정시 kubelet 데몬 재실행
# systemctl restart kubelet
staticPodPath: /etc/kubernetes/manifests 확인 가능
cat /var/lib/kubelet/config.yaml
apiVersion: kubelet.config.k8s.io/v1beta1
authentication:
anonymous:
enabled: false
webhook:
cacheTTL: 0s
enabled: true
x509:
clientCAFile: /etc/kubernetes/pki/ca.crt
authorization:
mode: Webhook
webhook:
cacheAuthorizedTTL: 0s
cacheUnauthorizedTTL: 0s
cgroupDriver: systemd
clusterDNS:
- 10.96.0.10
clusterDomain: cluster.local
cpuManagerReconcilePeriod: 0s
evictionPressureTransitionPeriod: 0s
fileCheckFrequency: 0s
healthzBindAddress: 127.0.0.1
healthzPort: 10248
httpCheckFrequency: 0s
imageMinimumGCAge: 0s
kind: KubeletConfiguration
logging:
flushFrequency: 0
options:
json:
infoBufferSize: "0"
verbosity: 0
memorySwap: {}
nodeStatusReportFrequency: 0s
nodeStatusUpdateFrequency: 0s
resolvConf: /run/systemd/resolve/resolv.conf
rotateCertificates: true
runtimeRequestTimeout: 0s
shutdownGracePeriod: 0s
shutdownGracePeriodCriticalPods: 0s
staticPodPath: /etc/kubernetes/manifests
streamingConnectionIdleTimeout: 0s
syncFrequency: 0s
node에서 /etc/kubernetes/manifests 디렉토리 밑에 yaml 파일 구성시 master를 통해서가 아니라 node에서 pod가 바로
구성되는것을 확인할 수 있다.
node2:/etc/kubernetes/manifests# cat > nginx.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
spec:
containers:
- name: nginx-container
image: nginx:1.14
ports:
- containerPort: 80
protocol: TCP
master:~/5# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-pod-node2.example.com 1/1 Running 0 36s 10.44.0.1 node2.example.com <none> <none>
static pod 삭제는 /etc/kubernetes/manifests 경로의 yaml 파일을 삭제하면 된다.
node2:/etc/kubernetes/manifests# rm nginx.yaml
master:~/5# kubectl get pods -o wide
No resources found in default namespace.
static pod의 경로는 /var/lib/kubelet/config.yaml 의 staticPodPath: /etc/kubernetes/manifests를 수정하면 된다.
ex) staticPodPath: /etc/test
경로 수정 후 kubelet Daemon은 restart 를 꼭 해줘야한다.
master 의 /etc/kubernetes/manifests 경로에는 아래와 같은 yaml 파일들이 구성 되어있다.
ls /etc/kubernetes/manifests/
etcd.yaml kube-apiserver.yaml kube-controller-manager.yaml kube-scheduler.yaml
[참고]
- https://www.youtube.com/watch?v=qEu_znIYCz0&list=PLApuRlvrZKohaBHvXAOhUD-RxD0uQ3z0c&index=14
'Kubernetes' 카테고리의 다른 글
[Kubernetes] Pod 환경변수 설정과 실행 패턴 (0) | 2022.12.02 |
---|---|
[Kubernetes] Pod에 Resource 할당하기 (0) | 2022.12.02 |
[Kubernetes] Kubernetes 1.2 version 부터 Docker 사용 중단 (0) | 2022.11.30 |
[Kubernetes] Pod - init container & infra container (0) | 2022.11.29 |
[Kubernetes] Pod - livenessProbe (0) | 2022.11.27 |