"에디터의 참고" 독 노동자와 CoreOS 실리콘 밸리 인큐베이터의 우수한 "졸업생" 그리고 두 상사는 좋은 개인 관계, 독 노동자 할 엔진 컨테이너, CoreOS 컨테이너 관리, 협력은 매우 행복 하 고, 그러나 점차적으로 "헤어" 로켓의 출시와 함께 있다. 독 노동자 CoreOS 찾고 있습니다 "제인", 하지만 독 노동자 "제인" 사용자의 간단한 사용을 달성 하기 위해 노력 하는 것입니다, 비록 CoreOS "제인"은 사실 컨테이너 기술의 미래를 있을 것입니다 최고의 경량을 추구, 그것 말하는 것은 어렵다. 오늘부터, Linfan, ThoughtWorks에서 소프트웨어 엔지니어 나타납니다는 "구름에 있는 도보: CoreOS 연습 가이드" 시리즈 CoreOS 본질을 통해 당신을 연습을 권장. 이 문서는 첫 번째 기사에 기반: CoreOS 내려다.
저자 소개:
Linfan, IT 포위 라이온 스, thoughtworks 청두 사무실 Cloudops 팀 구성원의 꼬리에서 태어난 일반적으로 같은 DevOps를 공부 하 여가 시간에 관련 된 응용 프로그램, AWS에 대 한 준비에 현재 인증 및 독 노동자의 홍보 관련 기술.
소개
많은 사람들이 CoreOS 7 월 2014의 끝에서 뉴스 기사 다는 것을 이해 하기 시작:는 독 노동자 컨테이너 운영 체제 Coeros의 첫 번째 공식 안정 버전을 발표 했다. 후에 그 6 개월 CoreOS 모든 방법. 8 월 중순-6 월 CoreOS 독 노동자 전용 창 고 서비스 공급자 quay.io,9 이번 달 Digitalocean 초와 전략적 협력, 9 월 Microsoft Azure 클라우드 서비스의 끝에 도달 CoreOS 수집 CoreOS 시스템 미러링, 10 월, 중간 지원 하기 시작 했다 영국의 유명한 클라우드 서비스 공급자 Brightbox 합류 또한 오호 지원 EOS 시스템의 CoreOS 세계 최고의 클라우드 서비스 제공 업체, 등 아마존의 AWS 클라우드 컴퓨팅 업체인 Rackspace Google 컴퓨터 엔진, 이전 미러 이미지를 지원 coreos 거울.
1 년 이상에 대 한 릴리스 되었습니다만 운영 체제로 (2013 년 3 월의 첫 번째 릴리스에서) CoreOS 이미 등장 클라우드 관련 오픈 소스 커뮤니티와 대규모 서버 클러스터에서 주류 리눅스 서버 운영 체제와 직접 경쟁. 기본 제공 컨테이너 관리 서비스 시스템을 제공 하 고 이후 레드햇에 관해서는 원자, 그리고 정식 우분투 코어, 점차적으로 Containerops 조 수 설정 시작, 클러스터 작업의 새로운 시대 열려. 그리고이 경향의 선구자는 CoreOS의 물결에 산책입니다, 그리고 그냥 "또 다른 리눅스 배포판", 그러나 파괴의 아이디어의 시간 보다 훨씬 더 많은 나타납니다.
자습서의이 시리즈는 가장 기본적인 개념, 대규모 클러스터 관리 및 시스템 사용자와 접촉 신속 하 게 함수의 본질을 이해할 수 있도록 독특한 CoreOS 시스템을 이해 하는 컨테이너의 두 주요 라인의 응용 프로그램으로 시작 되 고 연습 방법을 추천.
CoreOS는 어떤
는
간단히 말해서, 그건 크롬 OS 사용자 지정에 따라 가벼운 리눅스 배포판.
운영 체제로 CoreOS는 많은 다른 소프트웨어 GUI 및 패키지 관리자 같은 서버 시스템 코어를 제외 하는 동안 복잡 한 인간의 작업 또는 운영 체제 수준에서 제 3-파티 소프트웨어 지원이 필요로 하는 기능을 구현 하는 매우 효율적인된 시스템 커널 및 주변 사용자 지정을 사용 합니다.
특히, 패키지 관리자와 독 노동자의 네이티브 지원 CoreOS의 태도 언급 가치가 있다. 이것은 많은 CoreOS, 가장 익숙하지 장소와 첫 접촉에 전통적인 리눅스 관리에 익숙한 사용자 CoreOS 상용 패키지 관리 도구를 제공 하지 않았다. 전형적인 퍼즐 편리 CoreOS에 소프트웨어를 설치 하는 것입니다. 사실, CoreOS 바로 운영 체제 위에 다양 한 응용 프로그램을 설치 하는 사용자를 권장 하지 않습니다 있지만 대신 별도 응용 프로그램 컨테이너에 모든 서비스를 실행 하 여 응용 프로그램 컨테이너 응용 프로그램에 필요한 기본 기능 환경을 제공 하는 곳을 옹호. 이 방법은 분리 운영 체제 및 응용 프로그램 책임 더 철저 하 게, 빠르고 더 싸게 그들의 온라인 비즈니스를 업데이트 운영 체제 및 응용 프로그램 및 이러한 서버를 실행 하는 활성화 회사 사이의 커플링을 줄일 합니다.
CoreOS 구름
에 산책
그것은 CoreOS 구름에서 태어난 운영 체제 라고 해도 과언이입니다.
이 "태어난 대 한 구름"에 2 개의 의미가 포함 되어 있습니다.
우선, CoreOS의 디자인 관점 완벽 하 게 클라우드 생태계의 분산된 배포, 대규모 확장 가능한 확장 (확장) 수요를 고려, 우리가 완벽 하 게 실현 것 이다 최신 콘텐츠; 다른 한편, CoreOS 구성 서비스를 시작 하는 특정 클라우드 환경에 대 한 상당한 신뢰 클라우드-init는 고도로 사용자 정의 CoreOS 공식적으로 제공 하는 가상 컴퓨터의 사용자 지정 된 버전 또는 클라우드 서비스 제공 업체는 CoreOS ISO를 통해 직접 로컬 설치 유랑, vm 웨어, AZure, AWS, RackSpace에 따라은 사용할 수 없습니다. 클라우드 초기화 관련 클러스터 호스트 간에 자기 발견 및 차량 관리와 같은 기능.
CoreOS 사용자 경험
CoreOS의 핵심 아이디어는 크롬 브라우저의 사용자 경험에서 온다: 빠른 시작, 배경 업데이트, 버전, 각 탭에 대 한 별도 샌드박스, 단일 탭 충돌과 전체 브라우저에 걸쳐 단일 샌드박스 프로세스의 아무 충돌에 대 한 빠른 수정 프로그램 간에 원활한 업데이트. 서버에 extended, 다른, 다른 하나의 브라우저에서 탭 페이지를 드래그 하기만 한 서버에서 응용 프로그램 컨테이너에서 호스팅되는 서비스를 이동 상상. 그리고 이들은 CoreOS 모든 사용자에 게가지고 싶은 경험.
빠른 부팅 속도
때문에 빛, 너무 빨리. 서버, 할 가장 효율적인 서버 운영 체제에 CoreOS 팀의 현대 네트워크로 결과 뿐만 아니라 시스템 및 응용 프로그램의 높은 분리, 하지만 위대한 시작 속도 업그레이드를 달성. 공식 자료에 따르면 그것의 시스템 메모리 사용의 114 M만에서 실행 (주 저자: 이것은 공식적인 데이터, 유랑 환경에서 측정 하는 것은 약 80 M, 광고 보다는 더 적은), 일반적인 리눅스 서버 시스템만 절반 좀 더 (약 60%).
또한, CoreOS 기본 시스템 부팅 및 서비스 관리자 MAC 시스템 SYSTEMD에 의해 영감 을된 launchd 사용 (CentOS 7도를 사용 하 여 SYSTEMD 과거 SYSV 시작 서비스). SYSV와 비교해, SYSTEMD 수만 더 나은 추적 하지 시스템의 프로세스 아니라 또한 우수한 병렬 처리 기능을 함께 요청 시 시작의 특성을 결합 했다 독 노동자 빠른 시작 기능에 CoreOS 클러스터 대규모 배포 독 노동자 컨테이너 다른 운영 체제의 성능 이점은 더 발음 것입니다.
부드러운 버전 업그레이드
대부분의 리눅스 배포판을 포함 한 전통적인 서버 운영 체제는 몇 년 마다 대체 됩니다. 이 기간 동안 개발자 보안 패치 및 업데이트를 사용 하 여 시스템 개선 되지만 특히 큰 변화를 만들지 않을 것 이다, 결국 운영 체제 및 소프트웨어 천천히 될 엄밀한. 하지만 CoreOS의 아이디어는 언제 든 지, 개념 자료, 전체 업그레이드의 아치 리눅스 (업데이트 채널)와 롤링 업데이트 같은 업그레이드 된 채널을 사용 하 여 업데이트할 수 있는 운영 체제 될 것입니다. 시스템은 언제 든 지 최신 버전으로 직접 업그레이드할 수 있습니다. 전체 업데이트 프로세스 중에 응용 프로그램 하지 중단 될 것입니다. CoreOS와 인프라는 사용자를 귀찮게 하지 않습니다 크롬 브라우저 업그레이드 처럼 자동으로 업그레이드 됩니다.
CoreOS는 시스템 파티션이 두 개 (듀얼 루트 파티션에 듀얼 부팅 파티션, 시스템 파티션, 디렉터리를 포함 해야 합니다 실제로로 번역 된다 등 으로/빈/sbin/lib 디렉토리, 모든 읽기 전용입니다). 두 개의 파티션을 활성 및 수동 모드를 설정 하 고 시스템 작동 중 그들의 임무를 수행. 활성 파티션을 시스템 작업에 대 한 책임 이며 수동 파티션 시스템 업그레이드에 대 한 책임은. 운영 체제의 새로운 버전이 출시 되 면 완전 한 시스템 파일 수동 파티션 다운로드 됩니다 그리고 재 부 팅에는 시스템을 다시 시작 하 고 이전 활성 파티션 수동 파티션 전환 된 원래 수동 파티션을 활성 파티션으로 전환 됩니다. 이 과정에서 업데이트 된 기계 부하 클러스터에서 제거할 필요 하지 않습니다. 또한, 다른 응용 프로그램은 중단 되지 않습니다 있도록 CoreOS 제한 됩니다 하드 디스크 및 네트워크 I/O 리눅스 cgroups 통해 업데이트 프로세스 동안.
그것은 가치가 언급, 기존의 리눅스 서버와 달리, CoreOS 시스템 파티션을 시스템 운영, 따라서 CoreOS 보안을 보장 하 고 추가 사용자가 운영 체제에 직접 응용 프로그램을 설치 하 고 싶지 않다의 CoreOS의 태도 반영 하는 동안 읽기 전용 상태를 유지 하도록 설계 되었습니다. 같은 시간에 매우 일관성 있는 시스템 커널 및 클러스터 내의 주변 응용 프로그램 버전 버전 관리 문제, 운영 체제 자체를 유지 하기 위해 쉽게 발생 하는 운영 복잡성을 단순화 합니다.
색인화
의 응용 프로그램
CoreOS에서 모든 응용 프로그램 간단한 인터페이스를 통해 운영 체제에서 실행 되는 소프트웨어 코드 컨테이너 처럼 독 노동자 컨테이너에 로드 됩니다. 이 즉, 그들은 상자를 들고 같은 컴퓨터와 운영 체제 간에 쉽게 이동할 수 있습니다 배 고 열차, 또한 응용 프로그램을 방해 하지 않고 운영 체제를 업데이트할 수 있습니다 의미 하는 동안.
클라우드 인프라에 응용 프로그램을 배포 하는 개발자로 독 노동자 점점 인기 끌고있다. 운영 리소스를 색인화 (색인화) 컴퓨팅 환경을 통해 응용 프로그램을 제공 하 여 응용 프로그램 시스템 코어 및 리소스를 공유 하지만 서로 방해 하지 않습니다. 단일 컨테이너의 실패 수 있습니다 신속 하 게 다시 시작 하 고 컨테이너 내에서 응용 프로그램의 오류가 전체 시스템 충돌을 일으키지 않습니다. 이 개념은 브라우저의 샌드박스 동일 합니다.
CoreOS 분산 시스템 서비스
가장 문제, 클라우드 분산된 생각 모드로 변환, 분산된 서비스, 분산된 배포, 분산된 관리, 분산 된 데이터 스토리지의 집중에서... 그리고 이러한 서버 혁명을 가져온 CoreOS의 일부.
시스템 수준에서 이러한 분산된 생각 문제를 해결 하려면 CoreOS 팀 coreos 클러스터를 관리 하 고 독 노동자 컨테이너를 배포 하는 사용자를 위해 중요 한 도구를 제공 합니다.
클라우드 초기화
시스템 시작 시 CoreOS 읽습니다 플랫폼 사용자 지정 사용자 프로필 (라는 클라우드-구성) 시스템의 초기화 구성을 완료 합니다. 구성에서 정보, 새로운 부팅 CoreOS 서버 필요한 서비스 프로세스를 초기화 합니다 및 자동으로 발견 하 고 추가 서버 상호 작용을 할당 클러스터에 대 한 정보 및 다음 클러스터를 조인. 이 클러스터를 기반으로 "자기 발견" 간단 하 고 효율적인 조직 관리 하 게.
일반적으로, 클라우드 구성 프로필 적어도 속하는 서버, 클러스터 통신 주소를 포함 해야 하 고 서비스의 매개 변수 ETCD 및 함 대를 시작 하는 데 필요한. 사용자가 추가할 수 있습니다 더 많은 사용자 정의 서비스 구성에 필요에 따라 시작할 때 노드가 완전히 작동 되도록.
Etcd
CoreOS 클러스터에 해골은 ETCD. ETCD은 분산된 키/값 스토리지 서비스는 프로그램 및 CoreOS에 서비스에서 클러스터 정보 또는 ETCD 통해 서비스 검색을 공유할 수 있습니다. ETCD는 매우 유명한 뗏목 일관성 알고리즘에 기반: 데이터를 동기화 하 고 클러스터 내 정보는 항상 일관 되 고 사용할 수 있도록 서버에 리드의 선거. ETCD 각 CoreOS 시스템에서 기본 폼에 설치 됩니다.
ETCD는 기본 구성에서 두 개의 포트 사용 하 여 시스템에서: 4001 및 7001, 4001 읽고 Http + json 데이터를 쓰기 위해 외부 응용 프로그램을 제공 하는 곳 양식, 7001는 각 ETCD 간에 데이터를 동기화 하는 데 사용 됩니다. 사용자가 추가 ETCD 읽기, 쓰기 및 HTTPS 방식에서으로 데이터를 동기화를 허용 하도록 CA 인증서를 구성 하 여 정보 데이터의 보안을 보장할 수 있습니다.
함 대
함 대는 제어 SYSTEMD 통해 CoreOS 클러스터를 관리 하기 위한 도구입니다. 함 대 SYSTEMD D 버스 API, 등록 및 ETCD 서비스를 통해 각 함 대 에이전트 간의 데이터 동기화를 통해 상호 작용 합니다. 함 대는 다양 한 기능을 시작 하는 클러스터에서 서버 상태 보기를 포함 하 여 또는 읽기 종료 독 노동자 컨테이너 콘텐츠, 로그인 하 고 합니다. 더 중요 한 것은, 함 대는 클러스터에서 서비스는 항상 사용할 수 보장할 수 있습니다. 함 대를 통해 만든 서비스는 클러스터에서 사용할 수 없는 경우에, 원래이 서버에서 실행 중인 서비스의 시리즈 것입니다 다시 할당 다른 사용 가능한 서버에 하드웨어 또는 네트워크 오류로 인해 클러스터에서 분리 된 호스트 같은 함 대에 의해. 현재 함 대는 여전히 국가, 그러나 관리 하는 기능에 아주 초기 CoreOS 클러스터 매우 효과적 이다, 그리고 여전히 확장 공간을 많이, 이제 사용자 통합을 위한 간단한 API 인터페이스를 제공 합니다.
발 문
다음 챕터의 시작 부분에서 우리는 시스템의 다양 한 측면에 익숙해 단계별 CoreOS 클러스터 구축에서 시작 됩니다. (저자/linfan revisers/저 우 Xiaolu)
참조 기사:
서버 운영 체제 CoreOS
CoreOS: 리눅스 시스템 사용자 지정을 최소화
CoreOS 및 관리 도구의 CoreOS 전투: 소개
CoreOS 시스템 구성 요소 소개