Window OS이기 때문에 Unix 환경 사용을 위해 Virtual Box를 설치하고 CentOS 7버전을 설치하였다. Kubernetes 설치 전에 Docker가 설치되어야 한다.
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
systemctl disable firewalld
systemctl stop firewalld
cat <<EOF>> /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF>> /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
hostnamectl set-hostname k8s-master
cat <<EOF>> /etc/hosts
192.168.56.191 k8s-master
192.168.56.192 k8s-worker1
192.168.56.193 k8s-worker2
EOF
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
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
yum update -y
cat <<EOF>> /etc/docker/daemon.json
{
"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
systemctl daemon-reload
systemctl restart docker
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable kubelet
systemctl start kubelet
kubeadm version -o short
kubectl version --short
kubelet --version
yum install bash-completion
source /usr/share/bash-completion/bash_completion
echo 'source <(kubectl completion bash)' >>~/.bashrc
kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl > /dev/null
kubeadm init
kubeadm 시 출력되는 token 값과 hash 코드를 따로 저장해둔다.
rm /etc/containerd/config.toml
systemctl restart containerd
kubeadm init
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl get nodes
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
kubectl get nodes
kubeadm join 10.10.1.249:6443 --token ajztkz.2t71q6ib0m1qthkr \
--discovery-token-ca-cert-hash sha256:524b4f584f023d04c52cbbee0fd01a17cc6c80378ea35557b978eb9ac1c3b1d3
마스터 노드로 돌아와 아래 명령어를 입력한다.
kubectl get nodes
kubectl api-resources :
kubectl get pods
kubectl get nodes
kubectl get nodes -o wide
kubectl describe node k8s-master
kubectl get pod --all-namespaces
kubectl run webserver --image=nginx:1.14 --port 80
kubectl get pods
kubectl describe pod webserver
kubectl create deployment mainui --image=httpd --replicas=3
kubectl get deployments.apps
kubectl get nodes -o yaml
kubectl exec webserver -it -- /bin/bash
kubectl describe replicaset scdf-server-6647b6c8fd
kubectl exec pod/mysql-85bc7c955b-mspxx -it -- /bin/bash