Create Kubernetes Cluster
사전준비
swapoff -a
vi /etc/fstab 에서 swap 주석처리
systemctl stop firewalld
systemctl disable firewalld
systemctl mask --now firewalld
Container Runtime Installation
https://kubernetes.io/docs/setup/production-environment/container-runtimes/
[CentOS]
# Install Docker CE
## Set up the repository
### Install required packages.
yum -y install yum-utils device-mapper-persistent-data lvm2
### Add docker repository.
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
## Install docker ce.
yum update && yum install -y containerd.io-1.2.10 docker-ce-18.09.9 docker-ce-cli-18.09.9
## Create /etc/docker directory.
mkdir /etc/docker
# Setup daemon.
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
EOF
mkdir -p /etc/systemd/system/docker.service.d
# Restart docker.
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
Kubeadm Kubectl Kubcat elet Installation
https://kubernetes.io/docs/setup/independent/install-kubeadm/
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
# Set SELinux in permissive mode (effectively disabling it)
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
yum install -y kubelet-1.16.15 kubeadm-1.16.15 kubectl-1.16.15 --disableexcludes=kubernetes
systemctl enable --now kubelet
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
systemctl daemon-reload
systemctl restart kubelet
Kubeadm Init
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/
[root@master ~]# kubeadm init
Your Kubernetes master has initialized successfully!
To start using your cluster, you need to run the following as a regular user:Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /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/
Then you can join any number of worker nodes by running the following on each as root:
(워커노드에서 수행)
kubeadm join 192.168.19.128:6443 --token ei8zy4.8ptf3gz9pzhn3ndg \
--discovery-token-ca-cert-hash sha256:8ecd892c726ba342cca099bf3df1ebe53ff980cc751c8c750c3b08079ce2e7e8
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
master01 NotReady master 3m40s v1.17.3
worker01 NotReady 38s v1.17.3
Overlay Network
(master노드에서 수행)
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
[root@master01 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master01 Ready master 6m24s v1.17.3
worker01 Ready 3m22s v1.17.3
[root@master01 ~]# kubectl get pod --all-namespaces -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kube-system coredns-6955765f44-642pq 1/1 Running 0 6m38s 10.44.0.1 worker01
kube-system coredns-6955765f44-wxbx5 1/1 Running 0 6m37s 10.32.0.2 master01
kube-system etcd-master01 1/1 Running 0 6m43s 192.168.19.128 master01
kube-system kube-apiserver-master01 1/1 Running 0 6m43s 192.168.19.128 master01
kube-system kube-controller-manager-master01 1/1 Running 0 6m43s 192.168.19.128 master01
kube-system kube-proxy-2c4h2 1/1 Running 0 6m38s 192.168.19.128 master01
kube-system kube-proxy-v27j2 1/1 Running 0 3m45s 192.168.19.129 worker01
kube-system kube-scheduler-master01 1/1 Running 0 6m43s 192.168.19.128 master01
kube-system weave-net-8944b 2/2 Running 0 2m2s 192.168.19.129 worker01
kube-system weave-net-95ksl 2/2 Running 0 2m2s 192.168.19.128 master01
JumpHost
(리눅스)
https://kubernetes.io/docs/tasks/tools/install-kubectl/
sudo snap install kubectl --classic
kubectl version
홈디렉토리 아래 .kube/config 생성
$ kubectl get nodes
(Windows)
다운로드 : https://storage.googleapis.com/kubernetes-release/release/v1.17.0/bin/windows/amd64/kubectl.exe
path 경로에 kubectl.exe 위치 추가
홈디렉토리 아래 .kube/config 생성
$ kubectl get nodes
Uninstall Kubernetes
kubectl drain --delete-local-data --force --ignore-daemonsets
kubectl delete node
kubeadm reset
# on debian base
sudo apt-get purge kubeadm kubectl kubelet kubernetes-cni kube*
#on centos base
sudo yum remove kubeadm kubectl kubelet kubernetes-cni kube*
# on debian base
sudo apt-get autoremove
#on centos base
sudo yum autoremove
sudo rm -rf ~/.kube
'Kubernetes' 카테고리의 다른 글
Istio Networking (0) | 2020.03.09 |
---|---|
Istio Service Mesh (0) | 2020.03.08 |
Create Sample Pod (0) | 2020.03.07 |
Helm 3 (0) | 2020.03.07 |
Kubernetes Ingress Controller (0) | 2020.03.06 |