Prerequisites

  1. install python-pip & python3-pip & ansible

    1. python-pip

      • Access https://www.python.org, download python and install it.

      • Once the installation is done, Check below command.

        1
        2
        $ python3 --version
        Python 3.7.4
        cs
    2. python3-pip

      • Download get-pip.py file

        1
        curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
        cs
      • Then run the following

        1
        python get-pip.py
        cs
    3. ansible

      1
      brew install ansible
      cs

Settings

  1. clone the kubespray repository

    1
    $ git clone https://github.com/kubernetes-sigs/kubespray.git
    cs
  2. execute follow the command.

    sudo pip install -r requirements.txt
     
    cp -rfp inventory/sample inventory/mycluster
     
    declare -a IPS=(10.10.1.3 10.10.1.4 10.10.1.5// cluster ips
     
    CONFIG_FILE=inventory/mycluster/hosts.yml python3 contrib/inventory_builder/inventory.py ${IPS[@]}
     
    cat inventory/mycluster/group_vars/all/all.yml
    cat inventory/mycluster/group_vars/k8s-cluster/k8s-cluster.yml
     
    ansible-playbook -i inventory/mycluster/hosts.yml --become --become-user=root cluster.yml
    cs
  3. if you encounter an error with ruamel.yaml during the process, then you should install ruamel.yaml using pip.

    sudo pip install ruamel.yaml
    cs

Check out

root@node1:~# kubectl version
Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e61cfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-07-19T16:32:14Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e63cfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-07-19T16:32:14Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
 
 
root@node1:~# kubectl get nodes
NAME    STATUS   ROLES    AGE   VERSION
node1   Ready    master   11m   v1.12.3
node2   Ready    master   12m   v1.12.3
node3   Ready    <none>   11m   v1.12.3
node4   Ready    <none>   11m   v1.12.3
cs
Posted by 사용자 guru_k

댓글을 달아 주세요

kubernetes를 이용한 cluster 구성 - 3 

Master init

config 파일을 통해 상세한 설정이 가능하다.


kubeadmin.config.yml  생성


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# cat <<EOF >kubeadm.config.yaml
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:
  advertiseAddress: 192.168.128.88            // master ip
etcd:
  image: google_containers/etcd-amd64:3.1.11  // etcd image repository path
kubeProxy:
  bindAddress: 192.168.128.88                 // master ip
networking:
  serviceSubnet: 192.96.0.0/12                // service subnet cdir
  podSubnet: 192.244.0.0/16                   // pod subnet cdir
kubernetesVersion: v1.9.2
imageRepository: google_containers            // image repository path
EOF
cs

kubeadm init

master node init

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ kubeadm init --config kubeadm.config
  
Your Kubernetes master has initialized successfully!
 
To start using your cluster, you need to run the following as a regular user:
 
  mkdir -p $HOME/.kube
  sudo cp -/etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config
 
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/
 
You can now join any number of machines by running the following on each node
as root:
 
  kubeadm join --token 3bbb24.47cc21d7d6e88360 192.168.128.88:6443 --discovery-token-ca-cert-hash sha256:322efe09538cb8a1656069da216b46aa7de03eec9b00f990599d1d4e19113dba
  
cs


root 가 아닌 유저가 kubectl을 사용하기 위해선 아래와 같은 커맨드를 실행해야 한다.

1
2
3
$ mkdir -p $HOME/.kube
$ sudo cp -/etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
cs


또한 kubeadm init 을 통해 생성된 join 명령어를 통해 각 node에서 마스터로 join할 수 있다.


1
2
 
  kubeadm join --token 3bbb24.47cc21d7d6e88360 192.168.128.88:6443 --discovery-token-ca-cert-hash sha256:322efe09538cb8a1656069da216b46aa7de03eec9b00f990599d1d4e19113dba
cs


Posted by 사용자 guru_k

댓글을 달아 주세요

Kubernetes, 또는 쿠버네티스, 또는 간단히 "큐브(kube)"는 Linux 컨테이너 작업을 자동화하는 오픈소스 플랫폼입니다.


Kubernetes를 이용하여 클러스터 구성을 진행하는 내용을 포스트 하려고 합니다.


Kubernetes에 대한 자세한 내용은 

https://kubernetes.io/docs/reference/ Kubernetes 홈페이지에서 확인할 수 있습니다.


이 cluster 구성 예제는 실제 물리머신 3대에 노드를 제어하는 마스터 1대, 노드 2대로 구성한다고 가정하고 진행 할 예정입니다.


머신이 한대인 local 환경에서 테스트는 Kubernetes에서 제공하는 Minikube를 이용해서 테스트 해볼 수 있습니다.


Minikube에 대한 내용은 아래 홈페이지에서 확인하고 진행해볼 수 있습니다.

https://kubernetes.io/docs/getting-started-guides/minikube/




Posted by 사용자 guru_k

댓글을 달아 주세요