Customizing the SSH Daemon

SSH 설정을 변경할 수 있습니다.  

Cloud-Config

#cloud-config
 
ssh_authorized_keys:
  - ssh-rsa AAAAB3NzaC1y.....
 
write_files:
  - path: /etc/ssh/sshd_config
    permissions: 0600
    owner: root:root
    content: |
      # Use most defaults for sshd configuration.
      UsePrivilegeSeparation sandbox
      Subsystem sftp internal-sftp
      PermitRootLogin no
      AllowUsers core
      PasswordAuthentication no
      ChallengeResponseAuthentication no
 
coreos:
  units:
    - name: sshd.socket
      command: restart
      content: |
        [Unit]
        Description=OpenSSH Server Socket
        Conflicts=sshd.service

        [Socket]
        ExecStartPre=/usr/bin/sleep 5
        ListenStream=2022
        ReusePort=true
        FreeBind=true
        Accept=yes

        [Install]
        WantedBy=sockets.target

'CoreOS' 카테고리의 다른 글

[CoreOS] CoreOS SSH 설정 변경  (0) 2017.01.28
[CoreOS] cloud-config 파일 설정  (0) 2017.01.28
[CoreOS] 네트워크 설정  (0) 2017.01.28
[CoreOS]CoreOS란?  (0) 2017.01.28
[CoreOS] cloud-config 파일 유효성 검사  (0) 2017.01.28
[CoreOS] CoreOS 업데이트  (0) 2017.01.28

Cloud-Config

https://coreos.com/os/docs/latest/cloud-config.html Cloud-Conifg는 CoreOS 설치시 꼭 필요한 config 파일이며, config파일없이 설치되지 않습니다. OS설치시 필요한 네트워크설정, User설정들 다양한 설정을 할 수 있습니다.

Write Files

CoreOS 설치시 파일을 생성할 수 있다.

#cloud-config
 
coreos:
  write_files:
    - path: /etc/systemd/system/discovery.service
      owner: root:root
      permissions: '0644'
      content: |
        [Unit]
        Description=Private Token Discovery Service
        After=docker.service
        Requires=docker.service
 
        [Service]
        TimeoutStartSec=0
        ExecStartPre=-/usr/bin/docker kill discovery
        ExecStartPre=-/usr/bin/docker rm discovery
        ExecStartPre=/usr/bin/docker pull quay.io/coreos/discovery.etcd.io
        ExecStart=/usr/bin/docker run -d --name=discovery -p 80:8087 quay.io/coreos/discovery.etcd.io
        ExecReload=/usr/bin/docker restart discovery
        ExecStop=/usr/bin/docker stop discovery
 
        [Install]
        WantedBy=multi-user.target

'CoreOS' 카테고리의 다른 글

[CoreOS] CoreOS SSH 설정 변경  (0) 2017.01.28
[CoreOS] cloud-config 파일 설정  (0) 2017.01.28
[CoreOS] 네트워크 설정  (0) 2017.01.28
[CoreOS]CoreOS란?  (0) 2017.01.28
[CoreOS] cloud-config 파일 유효성 검사  (0) 2017.01.28
[CoreOS] CoreOS 업데이트  (0) 2017.01.28

Network Configuration

네트워크 설정 가이드

https://coreos.com/os/docs/latest/network-config-with-networkd.html

https://github.com/coreos/docs/blob/master/os/network-config-with-networkd.md

 Static IP Configuration

#cloud-config

coreos:
  units:
    - name: 00-eth0.network
      runtime: true
      content: |
        [Match]
        Name=eth0

        [Network]
        DNS=1.2.3.4
        Address=10.0.0.101/24
        Gateway=10.0.0.1 

Multi IP Configuration

#cloud-config
 
coreos:
  units:
    - name: 20-multi_ip.network
      content: |
        [Match]
        Name=eth0

        [Network]
        DNS=8.8.8.8
        Address=10.0.0.101/24
        Gateway=10.0.0.1
        Address=10.0.1.101/24
        Gateway=10.0.1.1


'CoreOS' 카테고리의 다른 글

[CoreOS] CoreOS SSH 설정 변경  (0) 2017.01.28
[CoreOS] cloud-config 파일 설정  (0) 2017.01.28
[CoreOS] 네트워크 설정  (0) 2017.01.28
[CoreOS]CoreOS란?  (0) 2017.01.28
[CoreOS] cloud-config 파일 유효성 검사  (0) 2017.01.28
[CoreOS] CoreOS 업데이트  (0) 2017.01.28

CoreOS란

  • Docker구동에 특화된 리눅스OS를 목표로 탄생한 OS
  • 최소화된 경량 OS이고, 기존 리눅스에 비해 메모리를 40%정도 적게 사용한다
  • A/B 테스트 방식의 업데이트 (CoreUpdate)
    • CoreOS는 OS용으로 2개의 부트파티션을 가지고 있음.
    • OS업데이트는 B파티션에서 수행함으로서 현재 운영중인A파티션의 실행에는 영향이 없고, 업데이트가 끝나면 리부트 후 바로 업데이트가 적용된 B파티션 OS로 스위칭 되므로 매우 빠르고 안정적인 OS업데이트가 가능해진다.
    • 업데이트시 구글이 개발한 Omaha protocol을 사용하여 업데이트를 진행한다.
  • CoreOS 클러스터링 지원

구성

  • Linux Kernal
  • Docker
  • Systemd
  • etcd2
    • key-value store
    • CoreOS에서 데이터를 공유하기 위해 사용함.
  • fleet
    • Distributed Init System
  • flannel
  • rkt

Architecture

CoreOS 클러스터를 구성하여 Docker Container를 띠우고 특정 클러스터 한대를 정지시키면 정지된 Docker Container를 다른 클러스터에 생성한다.



'CoreOS' 카테고리의 다른 글

[CoreOS] cloud-config 파일 설정  (0) 2017.01.28
[CoreOS] 네트워크 설정  (0) 2017.01.28
[CoreOS]CoreOS란?  (0) 2017.01.28
[CoreOS] cloud-config 파일 유효성 검사  (0) 2017.01.28
[CoreOS] CoreOS 업데이트  (0) 2017.01.28
[CoreOS] CoreOS 설치  (0) 2015.11.14

Web Version

https://coreos.com/validate/

위의 홈페이지에 접속 후 cloud-config.yaml 파일 내용을 복사해서 붙여넣기 한 후에 Validate버튼을 누르면 문법 오류를 알려줍니다.

Command Line

CoreOS Command에서 아래의 명령어를 수행하면 위의 WebVersion과 동일하게 문법 오류를 알려줍니다.

$ sudo coreos-cloudinit -from-file=/path/cloud-config.yaml -validate


Command Update

CoreOS 업데이트는 자동스케쥴링 하지않고 수동으로 업데이트 합니다. 아래의 명령어를 수행하면 업데이트 후 재시작합니다.

https://github.com/coreos/docs/blob/master/os/switching-channels.md

https://github.com/coreos/docs/blob/master/os/update-strategies.md

$ sudo update_engine_client -check_for_update  

Cloud Config

#cloud-config
 
coreos:
  update:
    reboot-strategy: "best-effort"
    group: "stable"


'CoreOS' 카테고리의 다른 글

[CoreOS]CoreOS란?  (0) 2017.01.28
[CoreOS] cloud-config 파일 유효성 검사  (0) 2017.01.28
[CoreOS] CoreOS 업데이트  (0) 2017.01.28
[CoreOS] CoreOS 설치  (0) 2015.11.14
Vagrant 사용하지 않고 CoreOS 3대 클러스터링하기 (VirtualBox)  (0) 2015.11.14
Kubernetes  (0) 2015.11.14

+ Random Posts