쿠버네티스 공부 3

00_8_3·2021년 5월 1일
0

쿠버네티스 공부

목록 보기
3/11

pod에 리소스 할당하기

  • nginx.yaml
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 상태에서 오류가 발생한다.

Pod에 환경변수

  • nginx-env.yml
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을 해주자!

0개의 댓글