使用kubeadm方式安装Kubernetes

# centos内核升级
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y grub2-set-default 0
# 设置hostname 与host
hostnamectl set-hostname k8s-1
systemctl restart network
echo "172.17.1.65 k8s-1" >> /etc/hosts
ping k8s-1 -c 3
#添加 yum源 阿里
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=1
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

# 如果有梯子可以使用google源
cat <<EOF > /etc/yum.repos.d/google-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

echo "Stop Firewalld"
systemctl stop firewalld
systemctl disable firewalld
 
# Set the parameter for selinux
sed -ie 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

# set the system specific parameter
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
echo "net.bridge.bridge-nf-call-ip6tables = 1" >>/etc/sysctl.conf
echo "net.bridge.bridge-nf-call-iptables = 1" >>/etc/sysctl.conf
echo "net.bridge.bridge-nf-call-arptables = 1" >>/etc/sysctl.conf
swapoff -a
sysctl  -p

# Install docker-ce
echo "Install Docker"
cd  /root/1.17.0/
yum install -y lvm2.zip/*
yum install -y device-mapper-persistent-data.zip/*
yum install -y yum-utils.zip/*
yum install -y docker-ce.zip/*

# If network can reach, do this:
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce
cat <<EOF > /etc/docker/daemon.json
{
  "registry-mirrors": ["https://cu2yw19m.mirror.aliyuncs.com"]
}
EOF


cat <<EOF > /etc/calico/calicoctl.cfg
apiVersion: projectcalico.org/v3
kind: CalicoAPIConfig
metadata:
spec:
  datastoreType: "kubernetes"
  kubeconfig: "/root/.kube/config"
EOF

systemctl daemon-reload
systemctl restart docker
systemctl enable docker

# prepare the packages of kubelet-1.17.0 kubectl-1.17.0 kubeadm-1.17.0
echo "Install kubelet-1.17.0 kubectl-1.17.0 kubeadm-1.17.0"
cd  /root/1.17.0/
yum -y update
yum -y install kubeadm-1.17.0.zip/*  kubectl-1.17.0.zip/* kubelet-1.17.0.zip/*
yum -y install kubeadm-1.17.0 kubectl-1.17.0 kubelet-1.17.0
systemctl restart network
systemctl enable kubelet && systemctl restart kubelet
cat /proc/sys/net/bridge/bridge-nf-call-iptables 
cat /proc/sys/net/bridge/bridge-nf-call-ip6tables 

# switch off the swap
echo "KUBELET_EXTRA_ARGS="--fail-swap-on=false"" > /etc/sysconfig/kubelet
systemctl restart kubelet

# prepare the image and load the kube-system container for kubernetes
echo "Load images for kubernetes"
cd /root/1.17.0/
docker load -i kube-controller-manager.tar
docker load -i kube-apiserver.tar
docker load -i kube-proxy.tar
docker load -i kube-scheduler.tar
docker load -i coredns.tar
docker load -i etcd.tar
docker load -i flannel.tar 
docker load -i pause.tar
docker load -i nettoolbox.tar


kubeadm init  --pod-network-cidr=10.244.0.0/17 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap  --kubernetes-version=v1.17.0 


# prepare the kubernetes env
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

kubectl taint nodes --all node-role.kubernetes.io/master-
kubectl apply -f /root/1.17.0/kube-flannel.yml

sleep 90
kubectl get nodes -o wide 
kubectl get pods  -o wide -n=kube-system 
kubectl run nettoolbox --image=burlyluo/nettoolbox:v1 --restart=Never
kubectl get pods  -o wide  

echo "Install Finished"


猜你喜欢

转载自blog.csdn.net/yuanshangshenghuo/article/details/106336792