CentOS 7 部署 K8S
阿新 • • 發佈:2021-07-07
基礎:
三臺2核2G虛擬機器
CentOS 7
192.168.5.101
192.168.5.102
192.168.5.103
一、基礎配置(所有節點都關閉)
1、關閉防火牆、selinux、SWAP
systemctl stop firewalld && systemctl disable firewalld && setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
2、核心開啟網路支援
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl -p /etc/sysctl.conf
3、設定 /etc/hosts
192.168.5.101 node101
192.168.5.102 node102
192.168.5.103 node103
二、Docker部署
1、安裝依賴與映象
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
2、安裝軟體包
yum install -y docker-ce docker-ce-cli containerd.io
#預設安裝最新版本,可以指定安裝版本
#檢視可以安裝哪些版本
yum list docker-ce --showduplicates|sort -r
yum install -y docker-ce-18.09.9-3.el7 docker-ce-cli-18.09.9-3.el7 containerd.io
3、啟動Docker
systemctl enable docker && systemctl start docker
4、修改Cgroup Driver
cat > /etc/docker/daemon.json <<EOF
{ "exec-opts": ["native.cgroupdriver=systemd"] }
EOF
systemctl restart docker
注意:Docker預設驅動是cgroupfs,由於k8s推薦是systemd,需要修改
三、安裝kubeadm部署K8S叢集
#k8s阿里雲映象
cat <<EOF > /etc/yum.repos.d/kubernetes.repo [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#安裝指定版本 yum list kubelet --showduplicates | sort -r yum install -y kubelet-1.18.20 kubeadm-1.18.20 kubectl-1.18.20 systemctl enable kubelet && systemctl start kubeletEOF
cat <<EOF > kubeadm.yaml apiVersion: kubeadm.k8s.io/v1beta2 kind: InitConfiguration nodeRegistration: KubeletExtraArgs: cgroup-driver: "systemd" --- apiVersion: kubeadm.k8s.io/v1beta2 kind: ClusterConfiguration kubernetesVersion: v1.18.20 clusterName: "kubernetes" controllerManager: extraArgs: horizontal-pod-autoscaler-sync-period: "10s" node-monitor-grace-period: "10s" apiServer: extraArgs: runtime-config: "api/all=true" networking: podSubnet: "172.36.0.0/16" serviceSubnet: 10.96.0.0/12 imageRepository: k8s.gcr.io scheduler: {} EOFsystemctl enable kubelet && systemctl start kubelet #初始化Master節點 kubeadm init --config kubeadm.yaml 四、安裝網路外掛 wget https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/daemonset/kubeadm-kuberouter.yaml kubectl apply -fkubeadm-kuberouter.yaml