hotchpotch/wikipedia-multilingual-ir-pairs huggingface dataset:
비체
비평 이론에서 비체(卑體, abject)는 특히 사회와 도덕의 차원에서 규범과 규칙으로부터 배제되고 분리된 상태를 의미한다. 이 용어는 탈구조주의에서 관습적인 정체성과 문화적 개념을 본질적으로 교란하는 것으로 탐구되어 왔다. 쥘리아 크리스테바는 1980년 저서 《공포의 권력: 비체성에 관한 에세이》(Powers of Horror: An Essay on Abjection)에서 이 개념에 대한 영향력 있고 선구적인 개요를 탐구했는데, 여기서 그는 주관적 공포(비체)를 개인이 크리스테바가 말하는 일반적으로 억압된 "신체적 실재"를 경험하거나 마주칠 때, 또는 상징계에 실재계가 침입할 때 느끼는 감정이라고 설명한다.
크리스테바의 비체 개념은 공포를 다루는 대중문화 서사와 여성혐오, 동성애 혐오, 집단학살로 나타나는 차별적 행동을 분석하는 데 널리 사용된다. 비체 개념은 지그문트 프로이트와 자크 라캉의 전통적인 정신분석 이론을 토대로 하는데, 이들의 연구는 프로이트의 신경증과 라캉의 정신병을 통해 개인적 구별의 해체 경험에 주목했다.
비체 문학 비평 이론에서
괴물적인 것에 관심을 가진 프랑스의 전통(예: 소설가 루이페르디낭 셀린)과 '더러움'에 근거한 주체(예: 정신분석학자 자크 라캉)를 바탕으로, 쥘리아 크리스테바는 사회적 이성 - 사회 질서를 뒷받침하는 공동체적 합의 - 에 의해 거부되거나 이를 교란하는 것으로서의 비체 개념을 발전시켰다. 따라서 "비체"는 대상의 개념과 주체의 개념 사이 어딘가에 존재하며, 경계 공간에서 겨우 분리된 자아의 금기적 요소들을 나타낸다. 크리스테바는 주체 - 자신의 일부 - 와 대상 - 자신과 독립적으로 존재하는 것 - 으로 정의되는 경계 안에, 한때는 자신의 일부나 정체성의 일부로 분류되었다가 이후 거부된 조각들, 즉 비체가 존재한다고 주장한다.
비체 문학 비평 이론에서
하지만 크리스테바는 비체의 진정한 의미에 대해 구분을 두었다: "따라서 비체를 야기하는 것은 청결이나 건강의 결여가 아니라 정체성, 체계, 질서를 교란하는 것이다. 경계와 위치, 규칙을 존중하지 않는 것이다. 중간적인 것, 모호한 것, 복합적인 것이다." 비체는 상징계 밖에 위치하기 때문에, 이를 마주하는 것은 본질적으로 외상적인 경험이 된다. 이 경험은 한때 주체였다가 문화 세계에서 폭력적으로 추방된 대상인 더러움, 쓰레기, 시체와 마주칠 때 느끼는 혐오감과 같다. 따라서 비체의 감각은 문화, 즉 상징계의 대리자인 초자아의 존재를 보완한다. 크리스테바의 격언처럼 "각각의 자아에는 그것의 대상이, 각각의 초자아에는 그것의 비체가 있다."
비체 문학 비평 이론에서
크리스테바의 정신분석학적 관점에서, 비체화는 우리가 배제하는 우리 자신의 부분, 즉 어머니에게 행해진다. 우리는 정체성을 구축하기 위해 우리를 만든 대상인 모성을 비체화해야 한다. 비체화는 말하는 존재의 주관적 역학을 통해 미시적 차원에서 일어나며, "보편적이고 공통된 법칙으로서의 언어"를 통해 사회의 거시적 차원에서도 일어난다. 우리는 의례, 특히 정화의 의례를 통해 자연과 사회, 기호적인 것과 상징적인 것 사이의 명확한 경계를 유지하려 하는데, 역설적이게도 의례 행위에서 비체와의 접촉을 배제하면서도 갱신한다.
비체 개념은 종종 기괴함, 즉 "집과 같지 않은", 혹은 낯설지만 동시에 친숙한 것이라는 개념과 연결되거나 혼동된다. 비체는 "낯선" 것임에도 우리가 그 안에서 어떤 측면들을 인식할 수 있다는 점에서 기괴할 수 있다. 상징계에서 떨어져 나온 시체는 그 기괴함을 통해 비체를 만들어내며 - 인지부조화를 만들어낸다.
비체 문학 비평 이론에서
영화 《에이리언》(1979년)은 공포와 공상과학 장르에서 여성의 괴물적 재현이 어떻게 어머니라는 태고의 비체적 형상과 공명하는지를 보여주는 예시로 분석되어 왔다. 신체 절단, 강제 임신, 그리고 에이리언 자체의 카멜레온적 본성은 모두 원초적 장면에 대한 환상과 경계가 없는 원초적 비체로서의 어머니와의 조우를 탐구한 것으로 볼 수 있다.
1990년대 호주의 문학 장르인 그런지 문학은 종종 "비체적인" 신체를 가진 젊은 성인 인물들과 건강 문제에 직면한 인물들에 초점을 맞춘다. 예를 들어 앤드류 맥개한의 소설 《프레이즈》(Praise)의 남녀 주인공인 고든 뷰캐넌과 신시아 라몬드는 모두 병든 몸을 가지고 있으며, 신시아는 발진이 일어나는 피부 문제를 겪는다. 카렌 브룩스는 클레어 멘데스의 《드리프트 스트리트》(Drift Street), 에드워드 베리지의 《성인들의 삶》(The Lives of the Saints), 그리고 《프레이즈》가 "자아와 타자를 정의하는 상상적이고 사회적으로 구성된 경계와 관련하여 젊은 도시/근교 인물들의 심리사회적, 심리성적 한계를 탐구"하며 비체적 인간 신체라는 개념을 탐구할 수 있는 새로운 "경계적 공간"을 "열어준다"고 말한다. 브룩스는 (《성인들의 삶》, 《드리프트 스트리트》, 《프레이즈》의) 소외된 인물들이 "쓰레기촌"(바람직하지 않은 환경이나 상황)에 머무르면서 이러한 "촌"의 "흐름을 전환"할 수 있어, 자신들의 거친 환경의 "경계성"(경계적 상황이나 과도기적 환경에 있음)과 자신들의 "비체성"(건강 문제, 질병 등을 가진 "비체적 신체")을 "상징적 힘과 주체성의 장소"로 주장한다고 설명한다.
비체 사회 비평 이론에서
"비체"라는 용어는 종종 여성, 미혼모, 소수 종교인, 성노동자, 수감자, 빈곤층과 장애인과 같은 주변화된 집단들의 상태를 설명하는 데 사용된다. 이언 매코믹은 성담론과 젠더 역사의 해체를 통해 18세기와 19세기의 매춘, 동성애, 자위(자기오염, 불순함, 부정함)에 관한 논의에서 쾌락적 위반 욕망, 일탈적 행동 범주, 체액에 대한 반응 사이의 반복적 연관성을 개괄했다. 비체적 사물이나 존재가 거주하는 공간을 가리키는 비체의 공간이라는 용어도 사용된다.
비체 사회 비평 이론에서
조직 이론 분야의 비체 관련 문헌은 제도가 직장 내에서 특정한 감정, 관행, 집단 또는 담론을 침묵시키거나 배제하거나 부인하게 되는 다양한 방식을 밝히고자 했다. 연구들은 사람들이 사회적, 조직적 비체화의 결과를 피하기 위해 어떻게 역할, 정체성, 담론을 채택하는지를 검토하고 입증했다. 이러한 연구들은 종종 조직이나 기관 내에서 규범에서 벗어난 집단에 초점을 맞추는데, 이들은 크리스테바가 말하는 "비체가 존재하게 하는 자" 또는 "비체자"가 된다. 제도와 조직은 전형적으로 의례와 다른 구조적 관행들에 의존하여 상징적 요소들을 기호적인 것으로부터 보호하는데, 이는 정책 수립의 역할을 강조하는 더 큰 조직적 차원과 사회적 거절을 강조하는 더 작은 대인 관계적 차원 모두에서 이루어진다. 조직적 차원과 대인 관계적 차원 모두 조직의 규범에 반하는 것으로 인식되는 직원들을 위한 "거주 불가능 지대"를 만드는 일련의 배제적 관행들을 만들어낸다.
비체 사회 비평 이론에서
그러한 방법 중 하나인 "집단적 교육"은 조직의 불편한 "어두운 면"을 지연시키고, 비체화하고, 숨겨서 기업의 힘을 통해 시야에서 멀리하는 전략을 가리킨다. 이 전략은 수용 가능한 통일된 의미가 만들어지는 과정이다 - 예를 들어, 기업이나 조직의 미션 선언문이 이에 해당한다. 정보의 통제된 공개와 신념 또는 반응적 진술을 통해, 사람들은 비체적인 것으로 여겨질 수 있었던 사건이나 상황에 대한 기업의 설득력 있는 해석에 점진적으로 노출된다. 기업이 발전시킨 이 가공된 의미는 공동체 전체에 공유된다. 그 사건이나 상황은 많은 사람들에 의해 단일한 방식으로 해석되고 보게 되어, 통일되고 수용된 의미를 만들어낸다. 이러한 전략들의 목적은 비체적 생각들이 각 개인의 기억에서 방출됨에 따라 비체를 식별하고 통제하려는 시도를 하는 것이다.
비체 사회 비평 이론에서
병원과 같은 조직들은 상징적인 것과 기호적인 것 사이의 분열을 독특한 방식으로 조정해야 한다. 예를 들어, 간호사들은 병들고, 부상당하고, 죽어가는 이들과 가까이 있기 때문에 더 구체적이고 물리적인 방식으로 비체와 마주한다. 그들은 병원 관리자들과 지도자들이 일반적으로 경험하지 않는 방식으로 죽음과 고통의 현실에 직면한다. 간호사들은 자신과 자신의 정서 상태를 그들을 둘러싼 죽음, 임종, 고통의 상황으로부터 분리하는 것을 배워야 한다. 병원에서는 매우 엄격한 의례와 권력 구조가 사용되는데, 이것은 비체화의 역학이 불안이 어떻게 의료팀과 조직의 업무가 되는지 뿐만 아니라 어떻게 병원 정책의 차원에서 실행되는지를 이해하는 데 있어 중요한 역할을 한다는 것을 시사한다.
비체는 종종 사람이 혐오감이나 구역질을 느끼는 신체와 사물을 설명하는 데 사용되는 개념으로, 자신의 정체성을 보존하기 위해 이들을 배제한다. 이모겐 타일러는 이 개념을 더 사회적인 것으로 만들어 비체화를 사회적이고 살아있는 과정으로 분석하고, 비체화하는 자들과 자신이 비체화된 것을 발견하는 자들을 권력자의 재현과 피억압자의 저항 사이에서 고찰하고자 했다. 타일러는 현대 영국이 어떻게 특정 집단들 - 대부분 소수 집단들 - 을 혐오스러운 형상으로 낙인찍었는지, 그리고 그 개인들이 어떻게 자신들의 비체적 정체성, 즉 주변화, 낙인찍기 그리고/또는 사회적 배제에 대항하여 저항하는지를 검토했다.
또한 사람들이 질병, 부상 또는 선천적 결함으로 인해 규범과 다른 신체를 가진 이들을 어떻게 바라보는지에 대한 탐구도 이루어졌다. 프랜시스와 같은 연구자들은 이러한 시선으로부터 발생하는 대인관계적 결과의 중요성을 강조한다. 장애인은 비장애인과 비슷하면서도 다르기 때문에, 비체가 존재하게 하는 자가 된다. 이 개인을 보는 사람들은 그 비체를 무시하고 거부하려 하거나, 이에 관여하고 몰입하려 함으로써 반응한다. 프랜시스에 따르면, 이 특정한 경우에 전자는 장애인과 눈을 마주치기를 거부하거나 그의 존재를 인정하지 않는 것으로 나타나며, 후자는 침투적인 응시로 나타난다. 이로 인한 대인관계적 결과는 장애인이 부정되고 무시할 수 있는 대상인 '타자'로 취급되거나, 또는 그 개인이 명확하게 비체자로 규정되고 정의되는 것이다.
비체 심리 치료에서
심리 치료사들은 비체와 같은 개념에 초점을 맞춤으로써 특정 정신병리의 발달에 있어 실제 경험과 문화적 형성 사이의 연관성을 탐구할 수 있게 한다. 브라운 수는 수치심과 같은 심리적 영향 요인들의 온전한 의미를 파악하기 위해서는 푸코의 자기감시와 담론 내 위치 설정에 대한 개념을 정신역동적 이론화와 결합하는 것이 매우 중요함을 입증했다.
비체 심리 치료에서
신체이형장애(BDD)와 같은 정신병리에 있어서, 타자 - 실제적, 상상적, 또는 환상적 - 의 역할이 핵심적이며, 수치심에 의해 증폭된 신체에 대한 양가감정이 이러한 역동의 핵심이다. 파커는 신체이형장애를 앓는 개인들은 객관적 자아감이 주관적 자아감을 지배하기 때문에 보여지는 것의 권력, 쾌락, 고통에 민감하다고 지적했다. 타자의 역할은 현대 정신분석학의 발달 이론에서 점점 더 중요해졌으며, 동일시, 투사, 내사를 통해 형성되는 신체 이미지에서 매우 분명하게 드러난다. 신체이형장애가 있는 개인들은 자신의 신체 일부를 매력 없거나 원치 않는 것으로 여기는데, 이러한 믿음은 수치심과 다른 사람들이 그 추정된 신체적 결함을 알아채고 부정적으로 인식한다는 인상에 의해 악화되어 하나의 순환을 만든다. 시간이 지남에 따라 신체이형장애가 있는 사람은 자신의 신체 그 부분을 자신과 분리된, 일탈적인 신체 부위로 보기 시작한다 - 그것은 비체화된 것이다.
또한 사회불안을 경험하는 사람들도 있는데, 이들은 신체이형장애가 있는 사람들과 비슷하면서도 다른 방식으로 비체가 되는 주체화를 경험한다. 여기서 비체는 전체 사회에 온전히 속하지 않는 경계적으로 문제가 되는 물질을 가리킨다 - 이러한 불속함이 실제인지 상상인지는 중요하지 않으며, 단지 그렇게 인식된다는 것만이 중요하다. 사회불안이 있는 사람들에게는 그들의 전체 사회적 자아가 정상적인 사회적 의례와 능력으로부터 벗어난 비체자로 인식된다.
비체 연구는 자아와 신체 혐오의 역동을 고찰하는 데 있어 시사적이고 유용한 것으로 입증되었다. 이러한 입증은 분리불안장애, 생물학적으로 중심이 되는 공포증, 외상 후 스트레스 장애와 같은 장애를 연구하는 데 있어 흥미로운 함의를 지닌다.
스칼라 (물리)
스칼라(scalar)는 하나의 숫자로만 표시되는 양 즉, 단지 크기만 있는 물리량이다. 벡터, 텐서 등이 방향과 크기가 있는 물리량인데 대하여 방향의 구별이 없는 수량이다. 숫자를 예로 들면, 스칼라는 |-1|, |2| 등으로 표기되는 절댓값이고 벡터는 +3, -4, +2 등 방향까지 포함된 값으로 볼 수 있다. 스칼라에는 시간, 속력, 온도, 에너지, 질량, 전하량, 밀도 등이 있다.
인텔 아톰 마이크로프로세서 목록
인텔 아톰은 인텔의 저전력, 저비용, 저성능 X86, X86-64 마이크로프로세서이다. Silverthorne, Diamondville 코드명의 아톰은 2008년 3월 2일에 처음 발표되었다.
인텔 아톰 마이크로프로세서 목록 태블릿 프로세서/SoC
No official TDP available. For power data see page 129-130.
임항준 생애
1919년에 태어나 1943년 9월 경성법학전문학교를 졸업하고 1946년 3월 미군정청에서 시행한 사법요원 시험에 합격해 1954년 10월 서울지방법원 판사에 임명되었다. 이승만 정부에서 성수동 살인사건을 심리하여 무죄판결을 내렸다. 1961년부터 1967년까지 전주,대구,서울지방법원장을 거쳐 1969년 9월 대구고등법원장에 임명되었으며 1971년에 대구고등법원 동료 법관들과 함께 법관 정풍운동을 벌였고 1973년 3월에 대법원 판사에 임명되었다. 김재규에 대해 내란목적 살인이 아니라 단순 살인이라며 소수의견을 냈다가 신군부로부터 사표 압력을 받아서 사표를 제출한 다음날 수리되었다. 캐나다로 이주하여 2008년 2월 29일에 사망하였다.
바르샤바 조약 기구 통합군 최고사령관
바르샤바 조약기구 통합군 최고사령관은 바르샤바 조약기구의 군사부문인 바르샤바 조약기구 통합군을 총괄하는 직위이다. 소련 국방제1차관이 겸직했다. 최고사령관을 보좌하는 연합참모장은 소련군 총참모부 제1차장이 겸직했다.
큰유황앵무
큰유황앵무(sulphur-crested cockatoo)는 오스트레일리아와 뉴기니섬, 그리고 인도네시아의 일부 열도의 우림지대에서 볼 수 있는 상대적으로 크고 흰 코카투이다. 황관앵무라고도 한다.
큰유황앵무 분포
오스트레일리아에서 큰유황앵무는 북동쪽에 널리 발견되며 킴벌리에서 남쪽 태즈메이니아주로까지 이르지만
나무가 얼마 없는 건조한 섬 지역은 회피한다. 애들레이드, 멜버른, 캔버라, 시드니, 브리즈번 등의 도시의 교외 지역에 많이 산다. 고산 지대를 제외하고 뉴기니섬 대부분과 와이게오섬, 미솔섬, 아루 열도와 같은 섬들, 그리고 쯘드라와시 베이, 밀른베이의 여러 섬들 주위에서 볼 수 있다.
4가지 아종이 인지된다:
큰유황앵무 추가 문헌
Higgins, Peter J., 편집. (1999). 〈Cacatua galerita Sulphur-crested Cockatoo〉 (PDF). 《en:Handbook of Australian, New Zealand and Antarctic Birds. Volume 4: Parrots to dollarbird》. Melbourne: Oxford University Press. 163–176쪽. ISBN 978-0-19-553071-1.
로노크 대학교
로노크 대학교(Roanoke College)는 미국 버지니아주 세일럼에 있는 4년제 사립 대학교이며 1842년 첫 개교되었다.
코몬도르
코몬도르(Komondor, Hungarian sheepdog)는 대형의 흰색의 헝가리아 개의 품종으로, 털은 길고 골져있다.
"대걸레 개"라는 별칭을 지닌 코몬도르는 오랫동안 확고히 자리를 잡은 견종으로서, 가축과 기타 재산을 보호하기 위한 경비견이기도 하다. 코몬도르는 쿠만인에 의해 유럽으로 건너왔으며 가장 오래된 기록은 1544년의 헝가리아어 코덱스에서 발견된다. 코몬도르종은 보존을 위해 헝가리의 국보 가운데 하나로 선언되었다.
코몬도르 용어와 역사
코몬도르는 12~13세기에 헝가리에 정착한 노르만 사람, 즉 터키어를 하는 쿠만인에 의해 헝가리로 유입되었다. 코만도르라는 이름은 "쿠만견"(Cuman dog)을 뜻하는 코만-도르(Koman-dor)에서 비롯되었다. 이 종은 티베트견에서 파생되며 조국이 황허강 주변이었던 쿠만인과 함께 아시아에서 왔다.
코몬도르 개요
코몬도르는 다수의 키가 30인치 이상에 이를만큼 대형견종의 하나로 인식된다. 몸은 두껍고 골진 털로 덮여있다. 튼튼한 몸과 근육에 긴 다리를 지녔다. 꼬리는 약간 구불구불하다. 코와 입술은 언제나 까맣다.
암컷 코몬도르의 가장 작은 키는 25.5인치(65센티미터)이며 평균 키는 27.5인치(70센티미터)에 달한다. 수컷 코몬도르의 가장 작은 키는 27.5인치(70센티미터)이며 평균 키는 31.5인치(80센티미터)이다. 암컷 코몬도르의 평균 몸무게는 40–50 kg이며 수컷 코몬도르는 평균 50–60 kg이다.
코몬도르 이용
이 종은 가축을 보호하는 경비견이다. 선수견으로서 코몬도르는 날렵하고 굳세며 포식자를 뛰어넘어 때려눕힌다. 늑대와 곰으로부터 양을 지키는데 성공적으로 이용할 수 있다. 털은 야생동물, 기후, 초목으로부터 보호해준다.
조제 카를루스 토폴루 주니오르
조제 카를루스 토폴루 주니오르(포르투갈어: José Carlos Tofolo Júnior, 1989년 3월 2일 ~ )는 흔히 알레망(포르투갈어: Alemão)으로 불리는 브라질의 축구 선수로, 포지션은 공격수이다. 현재 브라질의 구아라니 FC에서 활약 중이다. 알레망은 이탈리아 국적 또한 보유하고 있다.
조제 카를루스 토폴루 주니오르 선수 생활
알레망은 산투스 FC에서 축구를 시작하였으며, 2005년 구단과 프로 계약을 맺었다. 2008년 1월 31일 캄페오나투 파울리스타에서 그레미우 바루에리를 상대로 출전하여, 프로 데뷔 무대를 가졌다. 4일 뒤 파울리스타 FC와의 경기에서 프로 통산 첫 골을 기록하였다.
2008년 7월 알레망은 이탈리아 세리에 A 소속 우디네세 칼초에 자유 계약으로 입성하였다. 그러나 알렉시스 산체스, 두샨 바스타, 오디온 이갈로, 리카르도 차라를 이미 보유하였던 우디네세였으며, 산체스와 이갈로만이 세리에 A 명단에 등록되었다. 논-EU 쿼터가 부족한 관계로 세리에 A에 출전하지 못하게 된 알레망은 우디네세 U-20 팀에서 경기를 가졌다. 2010년 7월 우디네세는 세리에 B 클럽 비첸차 칼초에게 40만 유로의 가격으로 공동소유권을 넘겨주며, 알레망을 내보내었다. 2010년 8월 20일 알레망은 아탈란타 BC와의 경기에 66분 교체출전하며 세리에 B 데뷔전을 가졌다.
2011년 1월 31일 알레망은 바레세 칼초의 마르코 첼리니와 트레이드되었다. 같은 해 6월 우디네세는 알레망에 대한 나머지 50%의 소유권을 양도하였다.
조제 카를루스 토폴루 주니오르 선수 생활
2012년 1월 알레망은 그레미우 카탄두벤시와 임시 계약을 맺으며, 브라질로 복귀하였다. 2012년 12월 중순 구아라칭게타 푸치보우로 이적하며, 정식 계약을 다시 맺을 수 있게 되었다. 구아라칭게타에서 득점포를 다시 가동시킨 알레망은 이후 AA 폰치 프레타로 이적하였다. 그러나 폰치 프레타에서 출장 기회를 잡지 못하고, EC 비토리아, 샤페코엔시, 포르투게자 등으로 임대를 전전하였다.
2014년 12월 12일 알레망은 멕시코의 크루스 아술과 계약을 맺었다. 리가 MX에서 14경기에 출전하여 3골 4도움을 기록하였고, 이후 피게이렌시 FC가 임대 계약을 제의하였다. 그 후로 ABC FC, 보타포구-SP를 거쳤고, 2016년에는 네덜란드 2부 에이르스터 디비시의 FC 에인트호번으로 이적하며 유럽 무대로 복귀하기도 하였다. 2017년에는 파라나 클루비로 이적하며 다시 브라질로 복귀하였다. 2018년 대한민국 K리그2의 부산 아이파크로 1년간 임대되었다.
안용득
안용득은  대한민국의 대법관을 지낸 법조인이다.
안용득 생애
부산에서 태어나 경남고와 서울대 법대를 졸업하고 제13회 고등고시 사법과에 합격하여 대구지방법원 경주지원  판사에 임용되었다. 이후 부산지법과 대구고법 등에서 부장판사를 지내면서 "형사판결에 있어 양식을 간이화하는데 앞장서는 등 송무업무의 개선에 기여했다"는 평가를 받았다. 제주지방법원장, 부산지방법원장, 대구고등법원장과 부산고등법원장을 지냈으며 김영삼 대통령에 의해 1993년 10월에 대법관에 임명되어 법원행정처장을 역임했다. 법원행정처장에 재직할 때인 1999년 2월 의정부지원에서 법원이 사건 변호사로부터 실비를 받는다는 의혹에 대한 조사결과를 발표하는 자리에서 "법원 실비는 관행이 아니다"라고 하면서 "다시는 이런 사태가 발생하지 않도록 사법부 구성원 전원은 뼈를 깍는 각오로 노력하겠다"고 밝혔지만 전국법원에서 실비제공이 이루어지고 있다는 문제제기에 대해선 "동의할 수 없다"고 했다. 대법관 퇴임이후 변호사 활동을 하다가 한국신문윤리위원회 위원장을 맡아 2003년에 연임하였으며 2010년 4월 1일에 대한적십자사 유종하 총재로부터 임기2년의 법률고문에 위촉되었다.
쿠버네티스
쿠버네티스(Kubernetes, 쿠베르네테스, "K8s")는 오픈 소스 컨테이너 오케스트레이션 시스템으로, 소프트웨어 전개, 확장 및 관리를 자동화한다. 구글에서 처음 설계했으며, 현재는 전 세계 기여자 커뮤니티에서 유지보수하며, 상표는 클라우드 네이티브 컴퓨팅 재단이 소유한다.
쿠버네티스라는 이름은 그리스어의 κυβερνήτης (kubernḗtēs)에서 유래했으며, '지사', '키잡이' 또는 '파일럿'을 의미한다. 쿠버네티스는 K와 s 사이의 여덟 글자를 세어 K8s로 종종 약칭한다 (누메로님).
쿠버네티스는 하나 이상의 컴퓨터(가상 머신 또는 베어 머신)를 클러스터로 묶어 컨테이너에서 워크로드를 실행할 수 있게 한다. 이는 containerd 및 CRI-O와 같은 다양한 컨테이너 런타임과 함께 작동한다. 모든 크기와 스타일의 워크로드를 실행하고 관리하는 데 적합하여 클라우드 및 데이터 센터에서 널리 채택되었다. 이 플랫폼은 독립 소프트웨어 공급업체(ISV)와 모든 주요 공용 클라우드 공급업체의 호스팅 클라우드 서비스 형태로 여러 배포판이 존재한다.
쿠버네티스
이 소프트웨어는 컨트롤 플레인과 실제 애플리케이션이 실행되는 노드로 구성된다. 또한 REST 기반 API와 상호 작용하는 데 사용할 수 있는 kubeadm 및 kubectl과 같은 도구를 포함한다.
쿠버네티스 역사
쿠버네티스는 2014년 6월 6일 구글에 의해 발표되었다. 이 프로젝트는 구글 직원인 조 베다, 브렌던 번스, 크레이그 맥클러키에 의해 구상되고 만들어졌다. 곧 빌 아익스, 던 첸, 브라이언 그랜트, 팀 호킨, 다니엘 스미스를 포함한 다른 구글 직원들도 프로젝트 구축을 도왔다. 레드햇과 CoreOS와 같은 다른 회사들도 곧 클레이튼 콜먼과 켈시 하이타워와 같은 저명한 기여자들과 함께 이 노력에 동참했다.
쿠버네티스의 설계 및 개발은 구글의 보그 클러스터 관리자에서 영감을 받았으며 프라미스 이론을 기반으로 한다. 많은 최고 기여자들이 이전에 보그에서 일했으며, 그들은 스타 트렉의 전 보그 캐릭터인 세븐 오브 나인의 이름을 따서 쿠버네티스를 "프로젝트 7"이라고 불렀고, 로고에 7개의 바퀴살을 가진 선박의 바퀴를 넣었다 (팀 호킨이 디자인). C++로 작성된 보그와 달리 쿠버네티스는 Go 언어로 작성되었다.
쿠버네티스는 2014년 6월에 발표되었고, 1.0 버전은 2015년 7월 21일에 출시되었다. 구글은 리눅스 재단과 협력하여 클라우드 네이티브 컴퓨팅 재단 (CNCF)을 설립하고 쿠버네티스를 시드 기술로 제공했다.
쿠버네티스 역사
구글은 이미 관리형 쿠버네티스 서비스인 GKE를 제공하고 있었고, 레드햇은 2014년 쿠버네티스 프로젝트 시작부터 오픈시프트의 일부로 쿠버네티스를 지원하고 있었다. 2017년, 주요 경쟁사들은 쿠버네티스를 중심으로 모여들었고, 이에 대한 기본 지원을 추가한다고 발표했다.
2018년 3월 6일, 쿠버네티스 프로젝트는 깃허브 프로젝트 중 커밋 수에서 9위, 작성자 및 이슈 수에서 리눅스 커널에 이어 2위를 차지했다.
버전 1.18까지 쿠버네티스는 N-2 지원 정책을 따랐는데, 이는 가장 최근의 세 가지 마이너 버전이 보안 업데이트 및 버그 수정을 받는다는 의미이다. 버전 1.19부터 쿠버네티스는 N-3 지원 정책을 따른다.
쿠버네티스 개념
쿠버네티스는 CPU, 메모리 또는 사용자 지정 메트릭에 기반한 애플리케이션을 배포, 유지보수 및 확장하는 메커니즘을 집합적으로 제공하는 일련의 빌딩 블록("프리미티브")을 정의한다. 쿠버네티스는 다양한 워크로드의 요구 사항을 충족하도록 느슨하게 결합되어 있으며 확장 가능하다. 내부 구성 요소뿐만 아니라 쿠버네티스에서 실행되는 확장 및 컨테이너는 쿠버네티스 API에 의존한다.
플랫폼은 컴퓨팅 및 스토리지 리소스를 객체로 정의하여 제어하며, 이러한 객체를 관리할 수 있다.
쿠버네티스는 마스터-슬레이브 아키텍처를 따른다. 쿠버네티스 구성 요소는 개별 노드를 관리하는 부분과 컨트롤 플레인의 일부인 부분으로 나눌 수 있다.
쿠버네티스 마스터 노드는 클러스터의 쿠버네티스 컨트롤 플레인을 처리하며, 워크로드를 관리하고 시스템 전체의 통신을 지시한다. 쿠버네티스 컨트롤 플레인은 TLS 암호화, RBAC, 강력한 인증 방법, 네트워크 분리와 같은 다양한 구성 요소로 이루어져 있으며, 각 구성 요소는 자체 프로세스로 단일 마스터 노드 또는 여러 마스터에서 실행되어 고가용성 클러스터를 지원할 수 있다. 쿠버네티스 컨트롤 플레인의 다양한 구성 요소는 다음과 같다.
쿠버네티스 개념
Etcd는 영구적이고 경량이며 분산된 키-값 데이터베이스 (원래 Container Linux를 위해 개발됨)이다. 이는 클러스터의 구성 데이터를 안정적으로 저장하며, 특정 시점의 클러스터 전체 상태를 나타낸다. Etcd는 네트워크 분할 시 가용성보다 일관성을 선호한다 (CAP 정리 참조). 일관성은 서비스를 올바르게 스케줄링하고 운영하는 데 매우 중요하다.
API 서버는 HTTP를 통해 JSON을 사용하여 쿠버네티스 API를 제공하며, 이는 쿠버네티스에 대한 내부 및 외부 인터페이스를 모두 제공한다. API 서버는 REST 요청을 처리하고 유효성을 검사하며, etcd에 있는 API 객체의 상태를 업데이트하여 클라이언트가 워크로드와 컨테이너를 워커 노드에 걸쳐 구성할 수 있도록 한다. API 서버는 etcd의 워치 API를 사용하여 클러스터를 모니터링하고, 중요한 구성 변경 사항을 롤아웃하거나, 클러스터 상태의 불일치를 etcd에 선언된 원하는 상태로 되돌린다.
쿠버네티스 개념
예를 들어, 인간 운영자가 특정 "파드"(아래 참조)의 세 인스턴스가 실행되어야 한다고 지정하면 etcd는 이 사실을 저장한다. 배포 컨트롤러가 두 인스턴스만 실행 중임을 발견하면(etcd 선언과 충돌), 해당 파드의 추가 인스턴스 생성을 스케줄링한다.
스케줄러는 자원 가용성 및 기타 제약 조건에 따라 스케줄링되지 않은 파드(스케줄링될 워크로드의 기본 단위)가 실행될 노드를 선택하는 확장 가능한 구성 요소이다. 스케줄러는 각 노드의 자원 할당을 추적하여 가용 자원을 초과하여 워크로드가 스케줄링되지 않도록 한다. 이를 위해 스케줄러는 자원 요구 사항, 자원 가용성, 그리고 서비스 품질, 선호도/반선호도 요구 사항 및 데이터 지역성과 같은 사용자 제공 제약 조건 또는 정책 지침을 알아야 한다. 스케줄러의 역할은 자원 "공급"을 워크로드 "수요"에 맞추는 것이다.
쿠버네티스 개념
쿠버네티스는 단일 클러스터 내에서 여러 스케줄러를 실행할 수 있도록 한다. 따라서 스케줄러 플러그인은 쿠버네티스 스케줄링 프레임워크를 준수하는 한 별도의 스케줄러로 실행하여 기본 바닐라 스케줄러의 인-프로세스 확장으로 개발 및 설치될 수 있다. 이를 통해 클러스터 관리자는 필요에 따라 기본 쿠버네티스 스케줄러의 동작을 확장하거나 수정할 수 있다.
컨트롤러는 API 서버와 통신하여 관리하는 리소스(예: 파드 또는 서비스 엔드포인트)를 생성, 업데이트 및 삭제함으로써 실제 클러스터 상태를 원하는 상태로 이끄는 조정 루프이다.
쿠버네티스 개념
컨트롤러의 예로는 ReplicaSet 컨트롤러가 있는데, 이는 클러스터 전반에 걸쳐 지정된 수의 파드 복사본을 실행하여 복제 및 확장을 처리한다. 이 컨트롤러는 또한 기본 노드가 실패할 경우 대체 파드를 생성하는 것을 처리한다. 코어 쿠버네티스 시스템의 일부인 다른 컨트롤러로는 모든 머신(또는 머신의 일부 하위 집합)에 정확히 하나의 파드를 실행하는 DaemonSet 컨트롤러, 그리고 완료될 때까지 실행되는 파드(예: 배치 작업의 일부)를 실행하는 Job 컨트롤러가 있다. 레이블 선택기는 컨트롤러가 관리하는 파드 집합을 지정하는 컨트롤러 정의의 일부를 형성하는 경우가 많다.
컨트롤러 매니저는 여러 코어 쿠버네티스 컨트롤러(위에서 설명한 예시 포함)를 관리하고, 표준 쿠버네티스 설치의 일부로 배포되며, 노드 손실에 대응하는 단일 프로세스이다.
클러스터에는 사용자 정의 컨트롤러를 설치할 수도 있으며, 이를 통해 사용자 정의 리소스(사용자 정의 리소스, 컨트롤러 및 오퍼레이터 아래 참조)와 함께 사용될 때 쿠버네티스의 동작 및 API를 더욱 확장할 수 있다.
쿠버네티스 개념
노드 또는 워커, 미니언으로 알려진 것은 컨테이너(워크로드)가 배포되는 머신이다. 클러스터의 모든 노드는 기본 네트워크 구성을 위해 아래 언급된 구성 요소뿐만 아니라 컨테이너 런타임을 실행해야 한다.
kubelet은 각 노드의 실행 상태를 담당하며, 노드의 모든 컨테이너가 정상 상태인지 확인한다. 컨트롤 플레인의 지시에 따라 파드로 구성된 애플리케이션 컨테이너를 시작, 중지 및 유지 관리한다. kubelet은 파드의 상태를 모니터링하며, 원하는 상태가 아니면 해당 파드를 동일한 노드에 재배포한다. 노드 상태는 하트비트 메시지를 통해 몇 초마다 API 서버로 전달된다. 컨트롤 플레인이 노드 실패를 감지하면, 상위 수준 컨트롤러가 이 상태 변화를 감지하고 다른 정상 노드에 파드를 실행할 것으로 예상된다.
컨테이너 런타임은 컨테이너의 시작, 조정 및 종료를 포함하여 컨테이너의 수명 주기를 담당한다. kubelet은 컨테이너 런타임 인터페이스(CRI)를 통해 컨테이너 런타임과 상호 작용하며, 이는 코어 쿠버네티스 유지 관리를 실제 CRI 구현과 분리시킨다.
쿠버네티스 개념
원래 kubelet은 "dockershim"을 통해 도커 런타임과만 연동되었다. 그러나 2020년 11월부터 2022년 4월까지 쿠버네티스는 컨테이너 런타임 인터페이스(CRI)를 준수하는 런타임으로 shim을 직접 컨테이너를 통해 또는 도커를 대체하는 런타임으로 교체하는 것을 선호하여 더 이상 지원하지 않는다. 2022년 5월 v1.24가 출시되면서 "dockershim"은 완전히 제거되었다.
kubelet과 호환되는 인기 있는 컨테이너 런타임의 예로는 containerd(처음에는 Docker를 통해 지원됨)와 CRI-O가 있다.
kube-proxy는 네트워크 프록시 및 로드 밸런서의 구현이며, 다른 네트워킹 작업과 함께 서비스 추상화를 지원한다. 이는 들어오는 요청의 IP 및 포트 번호를 기반으로 적절한 컨테이너로 트래픽을 라우팅하는 역할을 한다.
쿠버네티스에서 네임스페이스는 관리하는 리소스를 서로 다른 비겹치는 컬렉션으로 분리하는 데 사용된다. 이는 여러 팀, 프로젝트, 또는 개발, 테스트, 프로덕션과 같은 환경을 분리해야 하는 많은 사용자가 있는 환경에서 사용하도록 고안되었다.
쿠버네티스 개념
쿠버네티스의 기본 스케줄링 단위는 파드이다. 파드는 동일한 노드에 함께 위치하도록 보장되는 하나 이상의 컨테이너로 구성된다. 쿠버네티스의 각 파드에는 클러스터 내에서 고유한 IP 주소가 할당되어, 애플리케이션이 충돌 위험 없이 포트를 사용할 수 있도록 한다. 파드 내의 모든 컨테이너는 서로를 참조할 수 있다.
컨테이너는 파드 내부에 존재한다. 컨테이너는 실행 중인 애플리케이션, 라이브러리 및 해당 종속성을 포함하는 마이크로 서비스의 최하위 계층이다.
쿠버네티스는 단순 파드보다 더 높은 수준의 여러 워크로드 추상화를 지원한다. 이를 통해 사용자는 개별 파드를 직접 관리할 필요 없이 이러한 고수준 추상화를 선언적으로 정의하고 관리할 수 있다. 쿠버네티스의 표준 설치에서 지원되는 이러한 추상화 중 일부는 아래에 설명되어 있다.
쿠버네티스 개념
ReplicaSet의 목적은 언제든지 안정적인 복제 파드 집합을 유지하는 것이다. 따라서 이는 지정된 수의 동일한 파드 가용성을 보장하는 데 자주 사용된다. ReplicaSet은 또한 쿠버네티스가 주어진 파드에 대해 선언된 인스턴스 수를 유지하도록 하는 그룹화 메커니즘이라고도 할 수 있다. ReplicaSet의 정의는 선택기를 사용하며, 이 선택기 평가는 이와 관련된 모든 파드를 식별하는 결과를 가져온다.
ReplicationController는 ReplicaSet과 유사하게 동일한 목적을 가지며, ReplicaSet과 유사하게 동작하여 항상 지정된 수의 파드 복제본이 원하는 대로 존재하도록 보장한다. ReplicationController 워크로드는 ReplicaSet의 선행자였지만, 집합 기반 레이블 선택기를 사용하기 위해 결국 ReplicaSet을 선호하여 더 이상 사용되지 않게 되었다.
쿠버네티스 개념
배포(Deployments)는 ReplicaSet을 위한 상위 수준 관리 메커니즘이다. ReplicaSet 컨트롤러가 ReplicaSet의 규모를 관리하는 반면, 배포 컨트롤러는 ReplicaSet에 일어나는 일, 즉 업데이트가 롤아웃되어야 하는지, 롤백되어야 하는지 등을 관리한다. 배포가 스케일 업 또는 스케일 다운될 때, 이는 ReplicaSet의 선언 변경을 초래하며, 이 선언된 상태의 변경은 ReplicaSet 컨트롤러에 의해 관리된다.
StatefulSet은 파드 인스턴스 간의 고유성과 순서 속성을 강제하는 컨트롤러로, 상태 저장 애플리케이션을 실행하는 데 사용할 수 있다. 무상태 애플리케이션을 확장하는 것은 단순히 실행 중인 파드를 추가하는 문제이지만, 상태 저장 워크로드의 경우 파드가 다시 시작될 때 상태를 보존해야 하므로 더 어렵다. 애플리케이션이 스케일 업 또는 다운되면 상태를 재분배해야 할 수 있다.
쿠버네티스 개념
데이터베이스는 상태 저장 워크로드의 한 예이다. 고가용성 모드로 실행될 때, 많은 데이터베이스는 주 인스턴스와 보조 인스턴스의 개념을 포함한다. 이 경우 인스턴스 순서의 개념이 중요하다. 아파치 카프카와 같은 다른 애플리케이션은 데이터를 브로커 간에 분산시키므로, 한 브로커가 다른 브로커와 동일하지 않다. 이 경우 인스턴스 고유성의 개념이 중요하다.
DaemonSet은 클러스터의 모든 단일 노드에 파드가 생성되도록 보장하는 역할을 한다. 일반적으로 대부분의 워크로드는 애플리케이션이 필요로 하는 가용성 및 성능 요구 사항에 따라 원하는 복제본 수에 반응하여 확장된다. 그러나 다른 시나리오에서는 클러스터의 모든 단일 노드에 파드를 배포해야 할 수도 있으며, 노드가 추가될 때 총 파드 수가 늘어나고 노드가 제거될 때 쓰레기 수집된다. 이는 로그 수집, 인그레스 컨트롤러 및 스토리지 서비스와 같이 워크로드가 실제 노드 또는 호스트 머신에 대한 종속성을 갖는 사용 사례에 특히 유용하다.
쿠버네티스 개념
쿠버네티스 서비스는 다층 애플리케이션의 한 계층처럼 함께 작동하는 파드 집합이다. 서비스를 구성하는 파드 집합은 레이블 선택기로 정의된다. 쿠버네티스는 환경 변수 또는 쿠버네티스 DNS를 사용하여 두 가지 서비스 검색 모드를 제공한다. 서비스 검색은 서비스에 안정적인 IP 주소와 DNS 이름을 할당하고, 해당 IP 주소의 네트워크 연결에 대한 트래픽을 선택기와 일치하는 파드들 간에 라운드 로빈 방식으로 로드 밸런싱한다(심지어 실패로 인해 파드가 머신 간에 이동하더라도). 기본적으로 서비스는 클러스터 내부에 노출된다(예: 백엔드 파드는 서비스로 그룹화될 수 있으며, 프론트엔드 파드의 요청은 이들 사이에 로드 밸런싱된다). 하지만 서비스는 클러스터 외부에도 노출될 수 있다(예: 클라이언트가 프론트엔드 파드에 접근할 수 있도록).
쿠버네티스 개념
쿠버네티스 컨테이너의 파일 시스템은 기본적으로 임시 스토리지를 제공한다. 이는 파드가 재시작되면 해당 컨테이너의 모든 데이터가 사라지므로, 사소한 애플리케이션을 제외하고는 이러한 형태의 스토리지는 상당히 제한적이라는 의미이다. 쿠버네티스 볼륨은 파드 자체의 수명 동안 존재하는 영구 스토리지를 제공한다. 이 스토리지는 파드 내 컨테이너를 위한 공유 디스크 공간으로도 사용될 수 있다. 볼륨은 컨테이너 내의 특정 마운트 지점에 마운트되며, 이는 파드 구성에 의해 정의되고 다른 볼륨에 마운트되거나 다른 볼륨과 연결될 수 없다. 동일한 볼륨은 다른 컨테이너에 의해 파일 시스템 트리의 다른 지점에 마운트될 수 있다.
쿠버네티스 개념
일반적인 애플리케이션 과제는 구성 정보를 저장하고 관리하는 방법을 결정하는 것인데, 이 중 일부는 민감한 데이터를 포함할 수 있다. 구성 데이터는 개별 속성과 같은 세밀한 정보부터 전체 JSON 또는 XML 문서와 같은 일반적인 구성 파일까지 다양할 수 있다. 쿠버네티스는 이러한 필요를 해결하기 위해 ConfigMap 및 Secret으로 알려진 밀접하게 관련된 두 가지 메커니즘을 제공하며, 둘 다 애플리케이션을 재구축하지 않고도 구성 변경을 수행할 수 있도록 한다.
ConfigMap과 Secret의 데이터는 이 객체들이 Deployment를 통해 바인딩된 애플리케이션의 모든 인스턴스에 제공된다. Secret 및 ConfigMap은 해당 노드의 파드가 필요로 할 경우에만 해당 노드로 전송되며, 이 데이터는 노드의 메모리에만 저장된다. Secret 또는 ConfigMap에 의존하는 파드가 삭제되면, 바인딩된 모든 Secret 및 ConfigMap의 메모리 내 복사본도 삭제된다.
ConfigMap 또는 Secret의 데이터는 다음 방법 중 하나를 통해 파드에 접근할 수 있다.
쿠버네티스 개념
Secret과 ConfigMap의 가장 큰 차이점은 Secret이 안전하고 기밀 데이터를 포함하도록 특별히 설계되었다는 점이다. 비록 기본적으로 정지 상태에서 암호화되지 않으며, 클러스터 내에서 Secret의 사용을 완전히 보호하기 위해서는 추가 설정이 필요하다. Secret은 종종 인증서, 이미지 레지스트리 작업 자격 증명, 암호 및 SSH 키와 같은 기밀 또는 민감한 데이터를 저장하는 데 사용된다.
쿠버네티스 개념
쿠버네티스는 클라이언트(사용자 또는 내부 구성 요소)가 파드 및 노드와 같은 시스템의 모든 API 객체에 레이블이라는 키를 첨부할 수 있도록 한다. 이에 따라 레이블 선택기는 일치하는 객체로 해석되는 레이블에 대한 쿼리이다. 서비스가 정의될 때, 서비스 라우터/로드 밸런서가 트래픽이 라우팅될 파드 인스턴스를 선택하는 데 사용될 레이블 선택기를 정의할 수 있다. 따라서 단순히 파드의 레이블을 변경하거나 서비스의 레이블 선택기를 변경함으로써 어떤 파드가 트래픽을 받고 어떤 파드가 받지 않는지 제어할 수 있으며, 이는 블루-그린 배포 또는 A/B 테스트와 같은 다양한 배포 패턴을 지원하는 데 사용될 수 있다. 서비스가 구현 리소스를 동적으로 활용하는 이 기능은 인프라 내에서 느슨한 결합을 제공한다.
예를 들어, 애플리케이션의 파드에 시스템 tier (예: frontend, backend 등의 값) 및 release_track (예: canary, production 등의 값)에 대한 레이블이 있는 경우, 모든 backend 및 canary 노드에 대한 작업은 다음과 같은 레이블 선택기를 사용할 수 있다.
쿠버네티스 개념
tier=backend AND release_track=canary
레이블과 마찬가지로 필드 선택기도 쿠버네티스 리소스를 선택할 수 있게 한다. 레이블과 달리 선택은 사용자 정의 분류가 아닌 선택되는 리소스에 내재된 속성 값에 기반한다. metadata.name 및 metadata.namespace는 모든 쿠버네티스 객체에 존재하는 필드 선택기이다. 사용할 수 있는 다른 선택기는 객체/리소스 유형에 따라 달라진다.
애드온은 쿠버네티스 클러스터 내에서 애플리케이션으로 실행되는 추가 기능이다. 파드는 배포, ReplicationController 등에 의해 관리될 수 있다. 많은 애드온이 있으며, 그 중 몇 가지 중요한 것은 다음과 같다.
DNS
클러스터 DNS는 환경의 다른 DNS 서버 외에 쿠버네티스 서비스를 위한 DNS 레코드를 제공하는 DNS 서버이다. 쿠버네티스에 의해 시작된 컨테이너는 자동으로 이 DNS 서버를 DNS 검색에 포함한다.
웹 UI
이는 쿠버네티스 클러스터를 위한 범용 웹 기반 UI이다. 관리자가 클러스터에서 실행되는 애플리케이션뿐만 아니라 클러스터 자체를 관리하고 문제를 해결할 수 있도록 한다.
리소스 모니터링
컨테이너 리소스 모니터링은 컨테이너에 대한 메트릭을 중앙 데이터베이스에 기록하고, 해당 데이터를 탐색하기 위한 UI를 제공한다.
비용 모니터링
쿠버네티스 비용 모니터링 애플리케이션은 파드, 노드, 네임스페이스 및 레이블별로 비용을 세분화할 수 있도록 한다.
클러스터 수준 로깅
노드 또는 파드 실패 시 이벤트 데이터 손실을 방지하기 위해 컨테이너 로그를 검색/탐색 인터페이스가 있는 중앙 로그 저장소에 저장할 수 있다. 쿠버네티스는 로그 데이터에 대한 기본 스토리지를 제공하지 않지만, 많은 기존 로깅 솔루션을 쿠버네티스 클러스터에 통합할 수 있다.
컨테이너는 소프트웨어 이식성을 위한 방법으로 등장했다. 컨테이너는 서비스를 실행하는 데 필요한 모든 패키지를 포함한다. 제공되는 파일 시스템은 컨테이너를 매우 이식성 있게 만들고 개발에서 사용하기 쉽게 한다. 컨테이너는 사소한 구성 변경만으로 또는 전혀 변경 없이 개발에서 테스트 또는 프로덕션으로 이동할 수 있다.
역사적으로 쿠버네티스는 무상태 서비스에만 적합했다. 그러나 많은 애플리케이션에는 영속성이 필요한 데이터베이스가 포함되어 있어 쿠버네티스를 위한 영구 스토리지가 생성되었다. 컨테이너를 위한 영구 스토리지를 구현하는 것은 쿠버네티스 관리자, DevOps 및 클라우드 엔지니어에게 가장 큰 과제 중 하나이다. 컨테이너는 일시적일 수 있지만, 그 데이터는 점점 더 일시적이지 않으므로 컨테이너 종료 또는 하드웨어 장애 발생 시 데이터의 생존을 보장해야 한다. 쿠버네티스 또는 컨테이너화된 애플리케이션으로 컨테이너를 배포할 때, 조직은 영구 스토리지가 필요하다는 것을 종종 깨닫는다. 그들은 데이터베이스, 루트 이미지 및 컨테이너가 사용하는 기타 데이터에 빠르고 안정적인 스토리지를 제공해야 한다.
이러한 상황 외에도 클라우드 네이티브 컴퓨팅 재단 (CNCF)은 쿠버네티스 영구 스토리지에 대한 추가 정보, 특히 컨테이너 연결 스토리지 패턴을 정의하는 데 도움이 되는 블로그를 발행했다. 이 패턴은 쿠버네티스 자체를 스토리지 시스템 또는 서비스의 구성 요소로 사용하는 것으로 생각할 수 있다.
이러한 접근 방식 및 기타 접근 방식의 상대적 인기에 대한 더 많은 정보는 CNCF의 환경 조사를 통해서도 찾을 수 있다. 2019년 가을 현재 OpenEBS (Datacore Software의 Stateful Persistent Storage 플랫폼) 및 Rook (스토리지 오케스트레이션 프로젝트)이 평가 중일 가능성이 가장 높은 두 프로젝트로 나타났다.
컨테이너 연결 스토리지(Container Attached Storage)는 쿠버네티스가 부상하면서 등장한 데이터 스토리지 유형이다. 컨테이너 연결 스토리지 접근 방식 또는 패턴은 특정 기능에 대해 쿠버네티스 자체에 의존하면서, 주로 쿠버네티스에서 실행되는 워크로드에 블록, 파일, 객체 및 인터페이스를 제공한다.
컨테이너 연결 스토리지의 일반적인 속성에는 사용자 정의 리소스 정의와 같은 쿠버네티스 확장 기능 사용, 그리고 스토리지 또는 데이터 관리를 위해 별도로 개발 및 배포되었을 기능에 쿠버네티스 자체를 사용하는 것이 포함된다. 사용자 정의 리소스 정의 또는 쿠버네티스 자체에 의해 제공되는 기능의 예로는 쿠버네티스 자체에 의해 제공되는 재시도 로직, 그리고 일반적으로 사용자 정의 리소스 정의를 통해 제공되는 사용 가능한 스토리지 미디어 및 볼륨 인벤토리 생성 및 유지가 있다.
쿠버네티스 버전 1.9에서 컨테이너 스토리지 인터페이스(CSI)의 초기 알파 버전이 도입되었다. 이전에는 스토리지 볼륨 플러그인이 쿠버네티스 배포에 포함되어 있었다. 표준화된 CSI를 생성함으로써 외부 스토리지 시스템과 인터페이스하는 데 필요한 코드가 핵심 쿠버네티스 코드베이스에서 분리되었다. 불과 1년 후, CSI 기능은 쿠버네티스에서 일반 가용(GA) 상태가 되었다.
쿠버네티스 API
쿠버네티스 컨트롤 플레인의 핵심 구성 요소는 API 서버이며, 이 서버는 클러스터의 다른 부분뿐만 아니라 최종 사용자 및 외부 구성 요소에서도 호출할 수 있는 HTTP API를 노출한다. 이 API는 REST API이며 본질적으로 선언적이며, 컨트롤 플레인에 노출되는 것과 동일한 API이다. API 서버는 모든 레코드를 영구적으로 저장하기 위해 etcd를 사용한다.
쿠버네티스에서 모든 객체는 클러스터 상태의 "의도 기록" 역할을 하며, 객체를 작성하는 사람이 클러스터가 되기를 원하는 원하는 상태를 정의할 수 있다. 따라서 대부분의 쿠버네티스 객체는 다음과 같은 동일한 중첩 필드 집합을 가진다.
쿠버네티스의 모든 객체는 동일한 API 규칙을 따른다. 그 중 일부는 다음과 같다.
쿠버네티스 API는 사용자 정의 리소스(Custom Resources)를 사용하여 확장될 수 있으며, 이는 표준 쿠버네티스 설치의 일부가 아닌 객체를 나타낸다. 이러한 사용자 정의 리소스는 사용자 정의 리소스 정의(CRD)를 사용하여 선언된다. CRD는 현재 실행 중인 클러스터를 종료하거나 다시 시작할 필요 없이 동적으로 등록 및 등록 해제될 수 있는 리소스 유형이다.
쿠버네티스 API
사용자 정의 컨트롤러는 쿠버네티스 API와 상호 작용하는 또 다른 확장 메커니즘이며, 표준으로 사전 설치된 쿠버네티스 컨트롤러 관리자의 기본 컨트롤러와 유사하다. 이러한 컨트롤러는 사용자 정의 리소스와 상호 작용하여 선언적 API를 허용할 수 있다. 사용자는 사용자 정의 리소스를 통해 시스템의 원하는 상태를 선언할 수 있으며, 변경 사항을 관찰하고 조정하는 것은 사용자 정의 컨트롤러의 책임이다.
사용자 정의 리소스와 사용자 정의 컨트롤러의 조합은 종종 쿠버네티스 오퍼레이터라고 불린다. 오퍼레이터의 주요 사용 사례는 서비스 또는 서비스 집합을 관리하는 인간 오퍼레이터의 목표를 캡처하고, 자동화를 사용하여 이를 구현하며, 이 자동화를 지원하는 선언적 API를 사용하는 것이다. 특정 애플리케이션 및 서비스를 관리하는 인간 오퍼레이터는 시스템이 어떻게 동작해야 하는지, 어떻게 배포해야 하는지, 문제가 발생할 경우 어떻게 대응해야 하는지에 대한 깊은 지식을 가지고 있다.
쿠버네티스 API
오퍼레이터가 해결하는 문제의 예로는 애플리케이션 상태의 백업 및 복원, 데이터베이스 스키마 또는 추가 구성 설정과 같은 관련 변경 사항과 함께 애플리케이션 코드 업그레이드 처리가 있다. 클라우드 네이티브 컴퓨팅 재단의 인큐베이팅 프로그램에 속한 몇몇 주목할 만한 프로젝트는 쿠버네티스를 확장하기 위해 오퍼레이터 패턴을 따르는데, 여기에는 Argo, Open Policy Agent, Istio가 포함된다.
쿠버네티스는 API 접근을 제어하기 위해 다음 전략을 정의한다.
쿠버네티스 API 서버는 전송 계층 보안(TLS)을 CA 인증서를 사용하여 적용하기 위해 TCP 포트에서 HTTPS 트래픽을 수신한다.
쿠버네티스의 이전 버전에서는 API 서버가 HTTP 및 HTTPS 포트에서 모두 수신하는 것을 지원했다(HTTP 포트는 전송 보안이 전혀 없음). 이는 v1.10에서 더 이상 사용되지 않게 되었고, 결국 쿠버네티스 v1.20에서는 지원이 중단되었다.
쿠버네티스 API 서버에 대한 모든 요청은 인증되어야 하며, 다음을 포함한 여러 인증 전략을 지원한다.
쿠버네티스 API
사용자는 일반적으로 kubeconfig 파일에 클러스터 URL 세부 정보와 필요한 자격 증명을 표시하고 정의해야 하며, 이는 kubectl 및 공식 쿠버네티스 클라이언트 라이브러리와 같은 다른 쿠버네티스 도구에서 기본적으로 지원한다.
쿠버네티스 API는 다음 권한 부여 모드를 지원한다.
쿠버네티스는 여러 공식 API 클라이언트를 지원한다.
동일한 API 설계 원칙을 사용하여 쿠버네티스 클러스터를 생성, 구성 및 관리하기 위한 API를 프로그램으로 활용하도록 정의했다. 이를 클러스터 API라고 한다. API에 구현된 핵심 개념은 코드형 인프라스트럭처 또는 쿠버네티스 클러스터 인프라 자체가 다른 쿠버네티스 리소스처럼 관리될 수 있는 리소스/객체라는 개념이다. 유사하게, 클러스터를 구성하는 머신도 쿠버네티스 리소스로 취급된다. API는 핵심 API와 공급자 구현의 두 부분으로 구성된다. 공급자 구현은 쿠버네티스가 클라우드 공급자의 서비스 및 리소스와 잘 통합되는 방식으로 클러스터 API를 제공할 수 있도록 하는 클라우드 공급자별 기능을 포함한다.
쿠버네티스 용도
쿠버네티스는 마이크로서비스 기반 구현을 호스팅하는 방법으로 일반적으로 사용된다. 이는 쿠버네티스와 관련 도구 생태계가 모든 마이크로서비스 아키텍처의 주요 문제를 해결하는 데 필요한 모든 기능을 제공하기 때문이다.
쿠버네티스 비판
쿠버네티스에 대한 일반적인 비판은 너무 복잡하다는 점이다. 구글도 이를 인정했다.
쿠버네티스 배포판
다양한 공급업체는 쿠버네티스 기반 플랫폼 또는 IaaS를 제공하여 쿠버네티스를 배포한다.
이들은 일반적으로 오픈 소스, 상업용 또는 관리형 배포판으로 분류된다. 몇 가지 주목할 만한 배포판은 다음과 같다.