본문 바로가기
IT/Kubernetes

3-1. Kubernetes 설치

by halizy 2019. 1. 23.

kubernetes 설치 방법

 

version

 

kubernetes : 1.0.6 (2015.10.26기준 latest) https://github.com/kubernetes/kubernetes/releases/tag/v1.0.6

OS : Ubuntu 14.04 trusty x86_64 on VirtualBox * 3 nodes

 

구성

 

- test13 

- kb-master

- kb-apiserver

- kb-controller-manager

- kb-scheduler

- kb-minion

- kblet

- kb-proxy

- test14~15

- kb-minion

- kblet

- kb-proxy

 

조건

 

접근가능한 etcd 설치 되어있어야 함 (실습환경에서는 위 세 노드에 클러스터모드로 etcd 설치 되어있음)

 

기타

 

KubeUI와 같은 addon 설치는 포함되어 있지 않습니다. (별도페이지로작성예정)

 

 

다운로드

 

test@test13:~$ mkdir -p /tmp/download/kubernetes

test@test13:~$ cd /tmp/download/kubernetes

test@test13:~$ wget https://github.com/GoogleCloudPlatform/kubernetes/releases/download/v1.0.6/kubernetes.tar.gz

test@test13:~$ tar xvfz kubernetes.tar.gz

test@test13:~$ cd kubernetes/server

test@test13:~$ tar xzf kubernetes-server-linux-amd64.tar.gz 

 

 

바이너리 이동

 

test@test13:~$ sudo cp /tmp/download/kubernetes/kubernetes/server/kubernetes/server/bin

                                /kube-apiserver /opt/bin/

 

 

/etc/init/kube-apiserver.conf

 

test@test13:~$ sudo vi /etc/init/kube-apiserver.conf

description "Kube-Apiserver service"

respawn

# start in conjunction with etcd

start on started etcd

stop on stopping etcd

pre-start script

        KUBE_APISERVER=/opt/bin/$UPSTART_JOB

        if [ -f /etc/default/$UPSTART_JOB ]; then

                . /etc/default/$UPSTART_JOB

        fi

        if [ -f $KUBE_APISERVER ]; then

                exit 0

        fi

    exit 22

end script

script

        # modify these in /etc/default/$UPSTART_JOB (/etc/default/docker)

        KUBE_APISERVER=/opt/bin/$UPSTART_JOB

        KUBE_APISERVER_OPTS=""

        if [ -f /etc/default/$UPSTART_JOB ]; then

                . /etc/default/$UPSTART_JOB

        fi

        exec "$KUBE_APISERVER" $KUBE_APISERVER_OPTS

end script

 

/etc/init.d/kube-apiserver

 

 

 

test@test13:~$ sudo vi /etc/init.d/kube-apiserver

#!/bin/sh

set -e

### BEGIN INIT INFO

# Provides:           kube-apiserver

# Required-Start:     $etcd

# Required-Stop:

# Should-Start:

# Should-Stop:

# Default-Start:

# Default-Stop:

# Short-Description:  Start kube-apiserver service

# Description:

### END INIT INFO

export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/opt/bin:

BASE=$(basename $0)

# modify these in /etc/default/$BASE (/etc/default/kube-apiserver)

KUBE_APISERVER=/opt/bin/$BASE

# This is the pid file managed by kube-apiserver itself

KUBE_APISERVER_PIDFILE=/var/run/$BASE.pid

KUBE_APISERVER_LOGFILE=/var/log/$BASE.log

KUBE_APISERVER_OPTS=""

KUBE_APISERVER_DESC="Kube-Apiserver"

# Get lsb functions

. /lib/lsb/init-functions

if [ -f /etc/default/$BASE ]; then

        . /etc/default/$BASE

fi

# see also init_is_upstart in /lib/lsb/init-functions (which isn't available in Ubuntu 12.04, or we'd use it)

if [ -x /sbin/initctl ] && /sbin/initctl version 2>/dev/null | grep -q upstart; then

        log_failure_msg "$KUBE_APISERVER_DESC is managed via upstart, try using service $BASE $1"

        exit 1

fi

# Check kube-apiserver is present

if [ ! -x $KUBE_APISERVER ]; then

        log_failure_msg "$KUBE_APISERVER not present or not executable"

        exit 1

fi

fail_unless_root() {

        if [ "$(id -u)" != '0' ]; then

                log_failure_msg "$KUBE_APISERVER_DESC must be run as root"

                exit 1

        fi

}

KUBE_APISERVER_START="start-stop-daemon \

--start \

--background \

--quiet \

--exec $KUBE_APISERVER \

--make-pidfile --pidfile $KUBE_APISERVER_PIDFILE \

-- $KUBE_APISERVER_OPTS \

>> $KUBE_APISERVER_LOGFILE 2>&1"

KUBE_APISERVER_STOP="start-stop-daemon \

--stop \

--pidfile $KUBE_APISERVER_PIDFILE"

case "$1" in

        start)

                fail_unless_root

                log_begin_msg "Starting $KUBE_APISERVER_DESC: $BASE"

        $KUBE_APISERVER_START

                log_end_msg $?

                ;;

        stop)

                fail_unless_root

                log_begin_msg "Stopping $KUBE_APISERVER_DESC: $BASE"

                $KUBE_APISERVER_STOP

                log_end_msg $?

                ;;

        restart | force-reload)

                fail_unless_root

                log_begin_msg "Stopping $KUBE_APISERVER_DESC: $BASE"

                $KUBE_APISERVER_STOP

                $KUBE_APISERVER_START

                log_end_msg $?

                ;;

        status)

                status_of_proc -p "$KUBE_APISERVER_PIDFILE" "$KUBE_APISERVER" "$KUBE_APISERVER_DESC"

                ;;

        *)

                echo "Usage: $0 {start|stop|restart|status}"

                exit 1

                ;;

esac

             

test@test13:~$ sudo chmod +x /etc/init.d/kube-apiserver 

 

 

/etc/default/kube-apiserver

 

 

test@test13:~$ sudo vi /etc/init.d/kube-controller-manager

#!/bin/sh

 

set -e

 

### BEGIN INIT INFO

# Provides:           kube-controller-manager

# Required-Start:     $etcd

# Required-Stop:

# Should-Start:

# Should-Stop:

# Default-Start:

# Default-Stop:

# Short-Description:  Start kube-controller-manager service

# Description:

### END INIT INFO

 

export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/opt/bin:

BASE=$(basename $0)

 

# modify these in /etc/default/$BASE (/etc/default/kube-controller-manager)

KUBE_CONTROLLER_MANAGER=/opt/bin/$BASE

 

# This is the pid file managed by kube-controller-manager itself

KUBE_CONTROLLER_MANAGER_PIDFILE=/var/run/$BASE.pid

KUBE_CONTROLLER_MANAGER_LOGFILE=/var/log/$BASE.log

KUBE_CONTROLLER_MANAGER_OPTS=""

KUBE_CONTROLLER_MANAGER_DESC="Kube-Controller-Manager"

 

# Get lsb functions

. /lib/lsb/init-functions

if [ -f /etc/default/$BASE ]; then

        . /etc/default/$BASE

fi

 

# see also init_is_upstart in /lib/lsb/init-functions (which isn't available in Ubuntu 12.04, or we'd use it)

if [ -x /sbin/initctl ] && /sbin/initctl version 2>/dev/null | grep -q upstart; then

        log_failure_msg "$KUBE_CONTROLLER_MANAGER_DESC is managed via upstart, try using service $BASE $1"

        exit 1

fi

 

# Check kube-controller-manager is present

if [ ! -x $KUBE_CONTROLLER_MANAGER ]; then

        log_failure_msg "$KUBE_CONTROLLER_MANAGER not present or not executable"

        exit 1

fi

fail_unless_root() {

        if [ "$(id -u)" != '0' ]; then

                log_failure_msg "$KUBE_CONTROLLER_MANAGER_DESC must be run as root"

                exit 1

        fi

}

 

KUBE_CONTROLLER_MANAGER_START="start-stop-daemon

--start --background \

--quiet \

--exec $KUBE_CONTROLLER_MANAGER \

--make-pidfile \

--pidfile $KUBE_CONTROLLER_MANAGER_PIDFILE \

-- $KUBE_CONTROLLER_MANAGER_OPTS \

>> $KUBE_CONTROLLER_MANAGER_LOGFILE 2>&1"

KUBE_CONTROLLER_MANAGER_STOP="start-stop-daemon \

--stop \

--pidfile $KUBE_CONTROLLER_MANAGER_PIDFILE"

case "$1" in

        start)

                fail_unless_root

                log_begin_msg "Starting $KUBE_CONTROLLER_MANAGER_DESC: $BASE"

        $KUBE_CONTROLLER_MANAGER_START

                log_end_msg $?

                ;;

        stop)

                fail_unless_root

                log_begin_msg "Stopping $KUBE_CONTROLLER_MANAGER_DESC: $BASE"

        $KUBE_CONTROLLER_MANAGER_STOP

                log_end_msg $?

                ;;

        restart | force-reload)

                fail_unless_root

        log_daemon_message "Restarting $KUBE_CONTROLLER_MANAGER" || true

        $KUBE_CONTROLLER_MANAGER_STOP

        $KUBE_CONTROLLER_MANAGER_START

                log_end_msg $?

                ;;

        status)

                status_of_proc -p "$KUBE_CONTROLLER_MANAGER_PIDFILE" "$KUBE_CONTROLLER_MANAGER" "$KUBE_CONTROLLER_MANAGER_DESC"

                ;;

        *)

                echo "Usage: $0 {start|stop|restart|status}"

                exit 1

                ;;

 

esac

 

test@test13:~$ sudo chmod +x /etc/init.d/kube-controller-manager

 

 

/etc/default/kube-controller-manager

 

test@test13:~$ sudo vi /etc/default/kube-controller-manager

 
KUBE_CONTROLLER_MANAGER_OPTS="--master=192.168.56.203:8080


--logtostderr=true" 

'IT > Kubernetes' 카테고리의 다른 글

4. Etcd 설치 (클러스터)  (0) 2019.10.09
1. Kubernetes/Container 개요  (0) 2018.08.05

댓글