搭建K8S集群(cluster)
我們可以在K8S的官網,查看部署K8S的要求
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
准備三台已經安裝了docker的主機
Master:192.168.204.141
Node1:192.168.204.132
Node2:192.168.204.131
先進行免密登錄
[root@master ~]# ssh-keygen
先將三台虛擬機清除防火牆
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables-save
關閉防火牆
[root@master ~]# systemctl disable firewalld && systemctl stop firewalld
關閉swap分區
[root@master ~]# swapoff -a
[root@master ~]# vim /etc/fstab
[root@master ~]# sysctl -p
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness = 0
關閉selinux:
[root@master ~]# vim /etc/selinux/config
[root@node1 ~]# setenforce 0
[root@node1 ~]# getenforce
Permissive
編寫kunernetens的yum文件
[kubernetes]
name=kubernetes
baseurl=https://mirrors.tuna.tsinghua.edu.cn/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
進行安裝:
yum -y install epel-release
查看kubernetes中的版本號:
[root@master yum.repos.d]# yum --disablerepo="*" --enablerepo="kubernetes" list available --showduplicates
安裝:
Kubelet:運行在cluster所有節點上,負責啟動pod和容器
Kubectl:是kubenetes命令行工具,通過kubectl可以部署和管理應用,查看各種資源,創建,刪除和更新組件。
Kubadm:用於初始化cluster
使用yum安裝K8S:
yum -y install kubelet-1.18.0-0.x86_64 kubeadm-1.18.0-0.x86_64 kubectl-1.18.0-0.x86_64
添加TAB鍵:
[root@master yum.repos.d]# yum install bash-completion
[root@master yum.repos.d]# source <(kubeadm completion bash)
[root@master yum.repos.d]# source <(kubectl completion bash)
初始化集群:
systemctl enable docker && systemctl start docker
systemctl enable kubelet && systemctl start kubelet
[root@master ~]# kubeadm init --apiserver-advertise-address=192.168.204.141 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --pod-network-cidr=10.244.0.0/16
初始化完成后:
[root@master ~]# mkdir -p $HOME/.kube
[root@master ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
[root@master ~]# export KUBECONFIG=/etc/kubernetes/admin.conf
下載一個yaml文件:
https://kubernetes.io/docs/concepts/cluster-administration/addons
將這個文件內容拷貝到節點中,執行這個文件
[root@master ~]# kubectl apply -f kubernetes.yml
將node節點加入master節點中
我們初始化集群中提示我們命令:
在node節點上執行:
[root@node1 ~]# kubeadm join 192.168.204.141:6443 --token mvonvy.wespl5c5fd4794dx \
--discovery-token-ca-cert-hash sha256:fed0e38d206a6b01c0b43a33b81dd7edb36ba5ce0d30e29341c1ae87285ec4f8
查看集群狀態:
在master節點上查看集群:
[root@master ~]# kubectl get nodes
看到STATUS欄下是ready狀態就可以了。