本文演示了如何使用kubeadm在linux云服务器上安装ALL-IN-ONE类型的kubernetes环境,ALL-IN-ONE指master有可以当做node节点来使用。 有什么问题欢迎评论留言,我看到会及时回复,一起交流学习。
1.安装docker
对docker不太熟悉的,建议使用官方或则国内的一键安装脚本
官方一键安装脚本
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyu
国内一键安装脚本
curl -sSL https://get.daocloud.io/docker | sh
启动docker引擎并设置为自启动
sudo systemctl start docker
sudo systemctl enable docker
2.环境配置
关闭 SELinux
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
配置内核
cat >> /etc/modules <<EOF
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack_ipv4
br_netfilter
EOF
cat > /etc/sysctl.d/k8s.conf <<EOF
net.ipv4.ip_forward = 1
vm.swappiness = 0
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
修改docker配置
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://n6syp70m.mirror.aliyuncs.com"],
"iptables": false,
"ip-masq": false,
"storage-driver": "overlay2",
"exec-opts": ["native.cgrounpdriver=systemd"],
"log-driver": "json-file",
"log-opts": { "max-size": "20m" }
}
EOF
修改主机名和添加host
修改主机名
hostnamectl set-hostname kube-master
添加host,请替换x.x.x.x为云服务器的内网地址
cat >> /etc/hosts << EOF
x.x.x.x kube-master
EOF
#重启云服务器
reboot
3.安装 kubeadm、kubelet、kubectl
配置阿里云镜像源
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
exclude=kube*
EOF
安装kubekubeadm、kubelet、kubectl
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
systemctl restart kubelet
4.初始化集群
初始化集群 --image-repository用于指定K8S所需拉取的容器镜像地址
kubeadm init --pod-network-cidr=192.168.0.0/16 --image-repository registry.aliyuncs.com/google_containers
安装网络插件,这里使用的是calico网络插件
curl https://docs.projectcalico.org/manifests/calico.yaml -O
kubectl apply -f calico.yaml
实现ALL-IN-ONE
kubectl taint nodes kube-master node-role.kubernetes.io/master-
检测master节点是否运行正常
kubectl get nodes