목록클라우드컴퓨팅 (134)
스택큐힙리스트
Python 프로그램 내에서 사전을 전역 변수로 저장하고 약 32개의 작업자 프로세스를 분기합니다. 이론적으로는 이 방법이 작동할 수 있습니다. 왜냐하면 사전이 수정되지 않기 때문에 Linux에서의 fork에 대한 COW 메커니즘은 데이터 구조가 프로세스 간에 복사되지 않고 공유되는 것을 의미합니다. 그러나 이를 시도 할 때 multiprocessing.Pool.map 내의 os.fork()에서 프로그램이 OSError: [Errno 12] Cannot allocate memory와 함께 충돌합니다. 나는 이것이 커널이 메모리를 과도하게 할당하지 않도록 구성되어있기 때문이라고 확신합니다 (/proc/sys/vm/overcommit_memory가 2로 설정되어 있으며 루트 액세스가 없는 기계에서이 설정을 ..
문서를 통해 이해한 것은 다음과 같습니다: kubectl create 클러스터에 새로운 k8s 리소스를 생성합니다. kubectl replace 라이브 클러스터의 리소스를 업데이트합니다. kubectl apply 만약 create + replace를 하고 싶다면 (참고) 제가 가진 질문은 다음과 같습니다. 왜 클러스터에서 같은 작업을 수행하는데 세 가지 연산이 있는 것인가요? 이러한 연산들의 사용 사례는 무엇인가요? 내부에서는 어떻게 다른가요? 답변 1이들은 두 가지 다른 접근 방식입니다: 명령형 관리 kubectl create는 우리가 명령형 관리라고 부르는 것입니다. 이 접근 방식에서는 Kubernetes API에게 무엇을 생성, 대체 또는 삭제하고자 하는지 알려주는 것이며, K8s 클러스터의 상태는..
저는 쿠버네티스에서 Ingress와 로드 밸런서의 역할에 대해 혼란스러움을 많이 느끼고 있습니다. 내가 이해한 바에 따르면 Ingress는 클러스터에서 실행 중인 서비스로의 인터넷에서 들어오는 트래픽을 매핑하는 데 사용됩니다. 로드 밸런서의 역할은 트래픽을 호스트로 전달하는 것입니다. 이 관점에서 Ingress와 로드 밸런서는 어떻게 다른가요? 또한 쿠버네티스 내부의 로드 밸런서 개념은 Amazon ELB와 ALB와 어떻게 비교되나요?답변 1서버 { server_name kubernetes.foo.bar; listen 80; listen [::]:80; set $proxy_upstream_name -; location ~* ^/web2\/?(?.*) { set $proxy_upstream_name app..
저는 쿠버네티스에 nginx를 배포하려고 시도하고 있습니다. 쿠버네티스 버전은 v1.5.2입니다. 3개의 레플리카로 nginx를 배포했으며, 아래는 YAML 파일입니다, apiVersion: extensions/v1beta1 kind: Deployment metadata: name: deployment-example spec: replicas: 3 revisionHistoryLimit: 2 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.10 ports: - containerPort: 80 그리고 이제 해당 노드의 포트 80을 포트 30062에 노출시키고자 합니다. 그를 위해 아래 서비스를 생성했습니..