apiVersion: v1 kind: Pod metadata: name: hostpath-pod spec: containers: - name: hostpath-pod image: nginx volumeMounts: - mountPath: /hostpath name: hostpath-volume volumes: - name: hostpath-volume hostPath: path: /tmp/hostpath # 해당 디렉토리가 존재해야 합니다. type: Directory hostPath: 노드의 디스크에 볼륨을 생성하고, pod이 삭제 되더라도 볼륨에 있던 데이터는 유지 됨 volumeMounts.mountPath: 실행된 컨테이너 안에 마운트할 경로. (자동생성) volumeMounts.name: 마운트..
Dockerfile FROM nginx MAINTAINER 작성자 RUN mkdir /homepage WORKDIR /homepage RUN mkdir ./build COPY ./Homepage/build ./build RUN rm /etc/nginx/conf.d/default.conf ADD ./nginx.conf /etc/nginx/conf.d EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] Yaml #Deployment apiVersion: apps/v1 kind: Deployment metadata: name: homepage-deployment labels: app: web spec: replicas: 1 selector: matchLabels: app: web ..
apiVersion: v1 kind: Pod metadata: name: ubuntu spec: containers: - name: ubuntu image: ubuntu:latest command: [ "/bin/bash", "-c", "--" ] # Just spin & wait forever args: [ "while true; do sleep 30; done;" ] 컨테이너에서 task가 절대 끝나지 않을 명령어를 추가 command: [ "/bin/bash", "-c", "--" ] args: [ "while true; do sleep 30; done;" ]
Flannel이란 Flannel: 서로 다른 노드에 있는 pod 간 통신을 완성하기 위해서 network plugin이 필요한데, 이 때 그 중 하나가 Flannel plugin이다 노드1에서 노드 2로 다른 ip끼리 패킷을 보낼 때, 보내는 컨테이너의 출발지와 목적지를 가지고 있고, flannel에서 패킷을 주고받는 node의 출발지와 목적지 정보를 UDP 로 캡슐화해서 보내는 역할을 수행한다. Flannel 설치하기 공식 github: https://github.com/flannel-io/flannel GitHub - flannel-io/flannel: flannel is a network fabric for containers, designed for Kubernetes flannel is a ne..
Minikube 설치중 Exiting due to GUEST_MISSING_CONNTRACK: Sorry, Kubernetes 1.20.2 requires conntrack to be installed in root's path 에러가 뜰 경우 sudo apt install conntrack
설치전 서버가 하나이더라도 virtualbox에서 새로운 vm에 minikube를 설치하길 추천 Kubectl, Kubelet, kubeadm 이 설치되어있는지 확인 [kubectl]은 쿠버네티스 클러스터에 대해 명령을 실행할 수 있는 CLI이다. 이를 사용하여, 애플리케이션을 배포하고, 클러스터 리소스를 검사 및 관리하여 로그를 볼 수 있다. 설치 방법은 아래와 같다. Kubectl, Kubelet, kubeadm 설치하기 참고 : 공식문서 sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring..
1.DaemonSet DaemonSet은 노드의 자원상태와는 상관없이, 모든 노드에 pod가 하나씩 생김(ReplicaSet은 node의 자원상태애 따라 pod가 차등적으로 생김) 이렇게 각각의 노드에 하나씩 설치해서 사용해하야하는 서비스 목록 Prometheus: 각 노드들의 성능 모니터링 fluentd: 로그 수집 GlusterFS: 노드들을 Storage로 사용해서 네트워크 파일시스템을 구축 가능 selector와 template이 있어서 모든 노드에서 pod를 생성. 만약 노드들의 os종류가 달랐을때 ubuntu에서는 pod을 생성하고 싶지 않다면, template의 nodeSelector에 os:centos로 설정해주면 됨 template에 hostport를 설정을 하면 서비스에서의 extern..
0. Deployment란 현재 한 서비스가 운영중인데 ,이 서비스를 업데이트 해야되서 재배포를 해야될 때 도움을 주는 오브젝트 ReCreate: 디플로이먼트를 만들면 v1의 pod들이 만드러짐. pod하나당 하나씩 자원이 사용된다고 가정을 하면, 업그레이드를 할 때 디플로이먼트는 먼저 pod를 삭제한다. 그렇게 되면 서비스에 대한 다운타임이 발생하고 자원사용량도 없어진다. 다음으로 v2에 대한 pod 2개를 만든다. 일시적인 정지가 가능할 때만 사용되는 방법 Rolling Upate: 디플로이먼트는 먼저 v2에 pod를 하나 만듬. 자원사용량이 그만큼 늘어남. 이 상태에서는 누군가는 v1에 접속이되고, 누군가는 v2에 접속이 됨. 그리고나서 v1을 삭제하면 사용자들은 v2에만 접속을 하게 됨 중간에 추..