kubeadm安裝Kubernetes單節點master集群


環境准備

  1. Harbor(docker倉庫,不介紹安裝過程)
  2. k8s-master
  3. k8s-node01
  4. k8s-node02

安裝准備 (master & node)

//安裝依賴包 yum install -y conntrack ntpdate ntp ipvsadm ipset jq libseccomp -y //設置防火牆為iptables並設置空規則 systemctl stop firewalld && systemctl disable firewalld yum install -y iptables-services && systemctl start iptables && systemctl enable iptables && iptables -F && service iptables save //關閉swap swapoff -a sed -i '/swap/d' /etc/fstab //調整內核參數,對於K8s cat > /etc/sysctl.d/kubernetes.conf <<EOF net.bridge.bridge-nf-call-iptables=1 net.bridge.bridge-nf-call-ip6tables=1 net.ipv4.ip_forward=1 vm.swappiness=0 net.netfilter.nf_conntrack_max=2310720 EOF sysctl -p /etc/sysctl.d/kubernetes.conf //升級系統內核4.44,提升k8s穩定性(3.x內核也可以,但不建議,對k8s支持不是特別好,有bug) rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm //安裝完成后檢查/boot/grub2/grub.cfg中對對應內核中是否包含initrd16配置,如沒有再次安裝 yum --enablerepo=elrepo-kernel install -y kernel-lt //設置開機從新內核啟動(根據具體的安裝內核版本號修改) grub2-set-default "CentOS Linux (4.4.186-1.el7.elrepo.x86_64) 7 (Core)" //重啟 reboot 

kuber_proxy開啟的前置條件(master & node)

modprobe br_netfilter
cat > /etc/sysconfig/modules/ipvs.nodules << EOF
#!/bin/bash modprobe -- ip_vs modprobe -- ip_vs_rr modprobe -- ip_vs_wrr modprobe -- ip_vs_sh modprobe -- nf_conntrack_ipv4 EOF chmod 755 /etc/sysconfig/modules/ipvs.nodules /etc/sysconfig/modules/ipvs.nodules && lsmod|grep -e ip_vs -e nf_conntrack_ipv4 

安裝docker

yum install -y yum-utils device-mapper-persistent-data lvm2 -y yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -y yum update -y yum install docker-ce -y systemctl enable docker systemctl start docker 

安裝kubeadm(master & node)

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
yum install -y kubeadm-1.15.1 kubectl-1.15.1 kubelet-1.15.1
systemctl enable kubelet.service

安裝kubernetes

  1. 初始化主節點安裝用配置文件
//生成默認初始化配置文件 kubeadm config print init-defaults >kubeadm.yaml //修改生成的配置文件 advertiseAddress: 192.168.1.2 //主節點IP地址 kubernetesVersion: v1.15.1 //安裝的版本 imageRepository: registry.aliyuncs.com/google_containers //修改安裝源為阿里雲鏡像 networking:  podSubnet: "10.244.0.0/16" //增加一行設置pod分配的網段信息 //在最后添加下列信息,將默認的調度方式改為IPVS --- apiVersion: kubeproxy.config.k8s.io/v1alpha1 kind: KubeProxyConfiguration featureGates:  SupportIPVSProxyMode: true mode: ipvs 
  1. 下載安裝kubernetes images(master & node)
cat > k8s-images.sh << EOF
#!/bin/bash # download k8s 1.15.1 images # get image-list by 'kubeadm config images list --kubernetes-version=v1.15.1' images=( kube-apiserver:v1.15.1 kube-controller-manager:v1.15.1 kube-scheduler:v1.15.1 kube-proxy:v1.15.1 pause:3.1 etcd:3.3.10 coredns:1.3.1 ) for imageName in ${images[@]};do docker pull registry.aliyuncs.com/google_containers/$imageName done EOF sh k8s-images.sh 
  1. 安裝kubernetes

 

//方法(使用kubeadm生成的配置文件) kubeadm init --config kubeadm.yaml --upload-certs |tee kubeadmin-init.log //安裝完成后,根據提示,必須執行以下操作 mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config 

Flannel網路部署

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml //kube-flannel中Pod網段必須和kubernetes中配置的Pod網段一致 //kube-flannel默認Pod的網段為10.244.0.0/16 kubectl create -f kube-flannel.yml 

查看kubernetes信息

//查看所有kubernetes組件信息 kubectl get pod -n kube-system //查看k8s master信息 kubectl get node 

 

node節點部署

node安裝kubelet/kubeadm

[root@k8s-node01 ~]# cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=0 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF [root@k8s-node01 ~]# yum install kubeadm kubelet -y [root@k8s-node01 ~]# systemctl enable kubelet 

將node節點加入到k8s集群中

 通過使用kubeadm join命令將node節點加入到集群中,具體加入命令可以在k8s master安裝完成后的日志末尾查看。記錄加入集群的令牌  每個需要加入的節點都需要運行

//如下所示: kubeadm join 192.168.1.2:6443 --token abcdef.0123456789abcdef \ --discovery-token-ca-cert-hash sha256......... 
//node節點執行加入命令 [root@k8s-node01 ~]# kubeadm join 192.168.1.2:6443 --token nag8y9.9vllybijsnn7xrzd \ --discovery-token-ca-cert-hash sha256:0f8e9cec4c19ca004fd7c9a906691e5295dd5e38e5265e0edcba0b06cc2a7e14

在master上執行驗證節點是否加入集群

[root@k8s-master ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION master Ready master 72m v1.15.0 node01 Ready <none> 5m33s v1.15.0 node02 NotReady <none> 14s v1.15.0
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM