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
을 해주자!