apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
spec:
containers:
- image: nginx
name: nginx-pod
ports:
- containerPort: 80
protocol: TCP
resources:
requests:
memory: 500Mi
cpu: 200m
limits:
memory: 1Gi
cpu: 1
키비바이트 : KiB (B는 생략가능)
메비바이트 : Mi
기비바이트 : Gi
cpu : cpu의 코어단위이다. 1 코어는 1000m으로 200m은 5분 1의 성능을 말한다.
requests를 명시하지 않는 경우 limits와 같은 값으로 requests의 초기값이 잡힌다.
pod내에 os, CNI와 같은 부가적인 것들이 있기 때문에
requests또는 limits가 해당 pod의 성능 (pod의 1코어 또는 1Gib)과 같으면 pending 상태에서 오류가 발생한다.
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
spec:
containers:
- image: nginx
name: nginx-pod
ports:
- containerPort: 80
protocol: TCP
env:
- name: MYVAR
value: "testvalue"
해당 컨테이너에 접속후
$ env
명령어를 입력해주면
KUBERNETESSERVICE_PORT_HTTPS=443
KUBERNETES_SERVICE_PORT=443
HOSTNAME=nginx-pod
MYVAR=testvalue
PWD=/
PKG_RELEASE=1~buster
HOME=/root
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
NJS_VERSION=0.5.3
TERM=xterm
SHLVL=1
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
KUBERNETES_SERVICE_HOST=10.96.0.1
KUBERNETES_PORT=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP_PORT=443
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NGINX_VERSION=1.19.10
=/usr/bin/env
위 처럼 확인 할 수 있다.
위의 pod yml을 작성 후 접속하려고하니깐
kubectl exec nginx-pod -it -- /bin/bash
Error from server: error dialing backend: dial tcp 10.0.1.7:10250: i/o timeout
오류가 발생 했는데
워커노드의 방화벽을 해제 하지 않아서였다.
sudo ufw disable을 해주자!