快速安装k8s,简单测试集群环境

一.环境要求

二.脚本安装

1.环境需求
一台或多台机器,操作系统 CentOS7.x-86_x64
硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多
更改localhost
master: 192.168.137.100 k8s-master
node1: 192.168.137.101 k8s-node1
node2: 192.168.137.102 k8s-node2
2.创建前置环境脚本k8.sh
在3台主机上都执行(node节点可以不用装apiserver,问题不大)

#!/bin/bash
##########开始设置环境##############
printf "#####################正在配置所有环境变量信息################## "
echo "127.0.0.1 $(hostname)">> /etc/hosts
printf "#######################关闭selinux与防火墙################## "
sed -i ‘s/enforcing/disabled//etc/selinux/config
setenforce 0
systemctl stop firewalld
systemctl disable firewalld

printf "#######################关闭swap############################ "
swapoff -a
sed -ri ‘s/.swap./#&//etc/fstab

printf "######################配置路由转发########################### "
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
echo "net.ipv4.ip_forward = 1">> /etc/stsctl.d/k8s.conf
echo "net.bridge.bridge-nf-call-ip6tables = 1">> /etc/stsctl.d/k8s.conf
echo "net.bridge.bridge-nf-call-iptables = 1">> /etc/stsctl.d/k8s.conf
modprobe br_netfilter
sudo sysctl --system

printf "######################配置ipvs(可安装完毕配置)###################### "
cat <<EOF | sudo tee /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- vf_conntrack_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules
sh /etc/sysconfig/modules/ipvs.modules
yum -y install -y ipset ipvsadm

printf "######################安装docker环境######################### "
# 设置 yum repository
sudo yum remove docker
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装并启动 docker
# 不指定版本号则默认安装最新版本
yum install -y docker-ce-19.03.8 docker-ce-cli-19.03.8 containerd.io
systemctl enable docker
systemctl start docker

# 安装 nfs-utils
yum install -y nfs-utils
yum install -y wget

# 设置 docker 镜像,提高 docker 镜像下载速度和稳定性
# 如果您访问 https://hub.docker.io 速度非常稳定,亦可以跳过这个步骤
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
##或者使用阿里云镜像加速器(可以用你们自己的)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://7sbtq6z6.mirror.aliyuncs.com"]
}
EOF
# 重启 docker,并启动 kubelet
systemctl daemon-reload
systemctl restart docker
docker version

printf "######################安装k8部署yum源与k8核心插件######################### "
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=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
sudo yum makecache
sudo yum install -y kubelet-1.21.0 kubeadm-1.21.0 kubectl-1.21.0
sudo  systemctl enable kubelet
sudo  systemctl start kubelet

##下载api-server等核心组件
#如果不知道安装k8s版本所安装核心版本可使用 kubeadm config images list查看
sudo tee ./k8s-images.sh << EOF
images={
  kube-apiserver:v1.21.14
  kube-proxy:v1.21.14
  kube-controllor-manager:v1.21.14
  kube-scheduler:v1.21.14
  coredns:1.8.0
  etcd:3.4.13-0
  pause:3.4.1
}
for imageName in ${images[@]};do
sudo docker pull registry.aliyuncs.com/google_containers/$imageName
## 阿里镜像下载coredns后的路径k8s中有上层标签目录,需要手动打下标签
sudo docker tag registry.aliyuncs.com/google_containers/coredns:1.8.0 registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0 
done
EOF
chmod +x ./k8s-images.sh && ./k8s-images.sh

初始化master


sudo kubeadm init \ 
--apiserver-advertise-address=192.168.137.100 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.21.0 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=172.16.0.0/16

提示:
如存在以下ubeadm init报错(docker容器之前运行环境网络api接口占用)
报错:
 [ERROR FileContent—proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1
[preflight] If you know what you are doing, you can make a check non-fatal with --ignore-preflight-errors=…
To see the stack trace of this error execute with —v=5 or higher
解决方法:
echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables #清理容器之前桥接网络

如下图所示,已使用kubeamd成功安装看k8s核心组件(根据提示配置环境变量)
在这里插入图片描述

一共4步:执行就可以了:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf
#到这环境变量已经配置完毕
安装pod网络插件(网络插件很多如:ACI、calico、canal、flannel等,这里我们用calico) 
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
#接下来就是直接在两台node节点执行上图生成的初始化命令
kubeadm join 192.168.137.100:6443 --token dwlu5p.r3fmmx5qy461j9x9 \
	--discovery-token-ca-cert-hash sha256:b24271e586e171908be00d60ad5645646915d4ce2fcc8

[root@k8s-master ~]# kubectl get nodes
NAME         STATUS     ROLES                  AGE   VERSION
k8s-master   NotReady   control-plane,master   42m   v1.21.0
k8s-node1    NotReady   <none>                 42m   v1.21.0
k8s-node2    NotReady   <none>                 42m   v1.21.0
#给node节点加个标签
kubectl label node k8s-node1 node-role.kubernetes.io/worker01=''
kubectl label node k8s-node2 node-role.kubernetes.io/worker02=''

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值