使用kubeadm快速部署k8s集群

1、Linux系统安装
1.1、系统安装要求

部署kubernetes集群机器需要满足以下几个条件:
1、一台或多台机器,操作系统centos7.x
2、硬件配置:内存2GB以上,CPU处理器2个以上,硬盘30GB以上
3、机器之间网络必须互通
4、可以访问外网,需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点
5、禁止 swap 分区

这里使用的是centos7.9系统,详细安装请看https://blog.csdn.net/andyLyysh/article/details/127248551?spm=1001.2014.3001.5502

使用虚拟机安装三个centos系统,分别为master、node1、node2

2、系统初始化
2.1、配置静态网络,连接外网
vim /etc/sysconfig/network-scripts/ifcfg-ens33

将BOOTPROTO的值设置为static,ONBOOT的值设置为yes,配置IPADDR(网址)、 GATEWAY(网关)、 DNS(局域网),实例如下:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=cd53d353-feb7-4e95-ad98-a1646ce3c9d5
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.226.162
GATEWAY=192.168.226.2
DNS1=192.168.226.2
2.2、关闭防火墙
# 停止防火墙
systemctl stop firewalld

# 永久关闭防火墙
systemctl disable firewalld
2.3、关闭selinux
# 永久关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config

# 临时关闭selinux
setenforce 0
2.4、关闭swap
# 临时关闭swap
swapoff -a

# 永久关闭swap
vim /etc/fstab

将/dev/mapper/centos-swap swap 这一行注释掉
在这里插入图片描述

2.5、修改主机名
hostnamectl set-hostname [hostname]
2.6、在master中添加host
cat >> /etc/hosts << EOF
192.168.226.160 k8smaster
192.168.226.161 k8snode1
192.168.226.162 k8snode2
EOF

这里的ip地址是我部署时使用,请根据自己的实际IP和主机名进行添加

2.7、将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF 
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

# 生效
sysctl --system
2.8、所有节点同步时间
yum install ntpdate -y

ntpdate time.windows.com

使用date命令查看时间是否有同步,如果时间不同步node节点将无法添加到master中

3、所有节点安装Docker/kubeadm/kubelet
3.1、安装docker

Kubernetes 默认 CRI(容器运行时)为 Docker,因此先安装 Docker

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

yum -y install docker-ce-18.06.1.ce-3.el7

# 设置开机启动
systemctl enable docker && systemctl start docker

# 查看docker版本
docker --version
3.1.1、设置阿里云镜像
$ cat > /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF
3.2、添加阿里云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=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
3.3、安装kubeadm, kebuctl和kubelet
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0

# 设置开机启动
systemctl enable kubelet
3.4、部署kubernetes Master

在192.168.226.160(master)中执行

kubeadm init \
  --apiserver-advertise-address=192.168.226.160 \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.18.0 \
  --service-cidr=10.96.0.0/12 \
  --pod-network-cidr=10.244.0.0/16

在这里插入图片描述
在master中执行

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
3.5、加入kubernetes Node

master进行初始化后,会有kubeadm join命令,将此命令复制到需要加入的node中

kubeadm join 192.168.226.160:6443 --token bc0ulj.1h1a8s55iuyvqpvw \
    --discovery-token-ca-cert-hash sha256:dc9c399228de5b0cb40b0630962ad951bb34da3deff807bc00bad09f93a8b251

默认token有效期为24小时,如果过期了需要重新生成,生成命令如下:

kubeadm token create --print-join-command
3.6、kubernetes Master部署CNI网络插件

将raw.githubusercontent.com加入到hosts文件中

cat >> /etc/hosts << EOF
185.199.111.133 raw.githubusercontent.com
EOF

默认镜像地址无法访问,sed命令修改为docker hub镜像仓库。

# 在执行下面时会出现无法连接,多请求几次就好
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

# 查看是否有运行
kubectl get pods -n kube-system

在这里插入图片描述

4、测试kubernetes集群
# 安装nginx
kubectl create deployment nginx --image=nginx
# 开放端口
kubectl expose deployment nginx --port=80 --type=NodePort

kubectl get pod,svc

在这里插入图片描述
访问地址:http://NodeIP:Port
访问地址:http://192.168.226.161:32740/
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

珍朱(珠)奶茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值