安装master方法1.
1.安装基本软件包
yum install wget net‐tools vim bash‐comp* ‐y
2.下载阿里云的yum源
rm -f /etc/yum.repos.d/*
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum list
yum clean all
- 设置主机名,管理节点设置主机名
vim /etc/hostname
- 配置 Master 和 work 节点的域名
vim /etc/hosts
ip master
ip node1
ip node2
- 关闭 防火墙
systemctl stop firewalld
systemctl disable firewalld
- 关闭 SeLinux
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
- 关闭 swap
swapoff -a
vim /etc/fstab
echo vm.swappiness=0 >> /etc/sysctl.conf
sudo reboot
- 配置Docker, K8S的阿里云yum源
cat >>/etc/yum.repos.d/kubernetes.repo <<EOF
[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
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum clean all
yum repolist
- 安装并启动 docker
yum install -y docker-ce.x86_64 docker-ce-cli.x86_64 containerd.io.x86_64
mkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["镜像地址"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
# Restart Docker
systemctl daemon-reload
systemctl enable docker
systemctl restart docker
- 安装kubelet、kubeadm、kubectl
yum install -y kubelet-1.20.5 kubeadm-1.20.5 kubectl-1.20.5
- 重启 docker,并启动 kubelet
systemctl enable kubelet && systemctl start kubelet
- 将桥接的IPv4流量传递到iptables的链
echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables
vi /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
- 初始化主节点
kubeadm init --kubernetes-version=1.20.5 \
--apiserver-advertise-address=10.168.99.101 \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
这个方法对docker版本有要求,安装提示更换。
- 安装网络插件 Flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
- 查看是否成功创建flannel网络
ifconfig |grep flannel
- 重置 kubeadm
kubeadm reset
rm -rf $HOME/.kube
安装node方法1
- 设置主机名,管理节点设置主机名
vim /etc/hostname
- 配置 Master 和 work 节点的域名
vim /etc/hosts
ip master
ip node1
ip node2
- 配置阿里云 yum 源
cat >>/etc/yum.repos.d/kubernetes.repo <<EOF
[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
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum clean all
yum repolist
- 安装基础软件
yum install bash‐comp* vim net‐tools wget ‐y
- 安装 Docker,Kubeadm,Kubectl,kubelet
yum install docker-ce -y
systemctl start docker
systemctl enable docker
yum install kubelet kubeadm kubectl -y
systemctl enable kubelet
在master端执行
scp /etc/kubernetes/admin.conf root@slaveip:/etc/kubernetes/
- 配置 Kubeconfig 环境变量
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile
- 安装 flannel 网络插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
- 将master节点下面 /etc/cni/net.d/下面的所有文件拷贝到node节点上
`mkdir -p /etc/cni/net.d/`
在master:
`scp /etc/cni/net.d/* root@slaveip:/etc/cni/net.d/`
执行命令:
`kubectl get nodes 查看 node 节点处于ready状态`
安装master方法2.
方法一可能会出现无法启动的超时情况这时,用手动下载
在Master节点上查看所需下载镜像:
kubeadm config images list --kubernetes-version 1.20.5
在Master节点上下载镜像:
kubeadm config images list --kubernetes-version 1.20.5 | sed -e 's/^/docker pull /g' -e 's#k8s.gcr.io#docker.io/registry.cn-hangzhou.aliyuncs.com/google_containers#g' | sh -x
在Master节点上修改镜像:
docker images | grep registry.cn-hangzhou.aliyuncs.com/google_containers | awk '{print "docker tag ",$1":"$2,$1":"$2}' | sed -e 's#registry.cn-hangzhou.aliyuncs.com/google_containers#k8s.gcr.io#2' | sh -x
在Master节点上删除无用镜像:
docker images | grep registry.cn-hangzhou.aliyuncs.com/google_containers | awk '{print "docker rmi ", $1":"$2}' | sh -x
在Master节点上查看镜像:
docker images
Worker节点也需部分镜像 (按照上述安装其他的删除)
5、初始化集群
如下操作需在Master节点执行
初始化集群:
kubeadm init --apiserver-advertise-address=masterip --pod-network-cidr=10.244.0.0/16 --kubernetes-version=v1.20.5
slave加入master方式参照方法一