赞
踩
统一安装环境(如果你节点很多,自己规划好)
系统 | 节点 | IP |
---|---|---|
CentOS7.8 64位3.10.0-1127.13.1.el7.x86_64 | Master | 10.10.10.10 |
CentOS7.8 64位3.10.0-1127.13.1.el7.x86_64 | Node1 | 192.168.100.100 |
本次测试环境两台服务器,一台Master节点,一台Node1节点
第一次写,写的不好得地方还请谅解
通过修改vim /etc/hostname 来修改主机名
Master节点修改为 master1
Node1节点修改为 node1
修改vim /etc/hosts 来相互解析
两台都相互添加如下解析
10.10.10.10 master1
192.168.100.100 node1
企业中建议使用时间同步服务器
使用chronyd服务
systemctl start chronyd
systemctl enable chronyd
date命令来验证时间
关闭firewalld服务
systemctl stop firewalld
systemctl disable firewalld
关闭iptables服务
systemctl stop iptables
systemctl disable iptables
Selinux是Linux系统下的一个安全服务,如果不关闭它,在安装集群中回产生各种各样的奇葩问题
编辑 /etc/selinux/config 文件,修改 SELINUX 的值为disabled
SELINUX=disabled
修改完成后需要重启系统生效
查看命令: getenforce
编辑/etc/fstab 注释swap分区一行,重启Linux即可
修改Linux的内核参数,添加网桥过滤和地址转发的功能
编辑/etc/sysctl.d/kubernetes.conf文件,添加如下配置:
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
加载网桥过滤模块
modprobe br_netfilter
查看网桥过滤模块是否加载成功
lsmod | grep br_netfilter
重新加载配置
sysctl -p
中kubernetes中service有两种代理模型,一种是基于iptables的,一种是基于ipvs的,两者比较的话,ipvs的性能明显要高一些,但是如果要使用它,需要手动载入ipvs模块
安装ipset和ipvsadm
yum install ipset ipvsadm -y
添加需要加载的模块写入脚本文件( —是两个 横杠 )
cat <<EOF > /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe — ip_vs
modprobe — ip_vs_rr
modprobe — ip_vs_wrr
modprobe — ip_vs_sh
modprobe — nf_conntrack_ipv4
EOF
为脚本文件添加执行权限
chmod +x /etc/sysconfig/modules/ipvs.modules
执行脚本文件
/bin/bash /etc/sysconfig/modules/ipvs.modules
查看对应的模块是否加载成功
lsmod | grep -e ip_vs -e nf_conntrack_ipv4
这里是指定版本安装docker的 3:19.03.13-3.el7 版本
sudo yum -y install docker-ce-19.03.13-3.el7
根据文档安装后,记住添加开机自动启动
systemctl enable docker
配置镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://kq1fsint.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
更多可以查看阿里云镜像:https://developer.aliyun.com/mirror/docker-ce?spm=a2c6h.13651102.0.0.3e221b11qRSjZE
更多可以查看阿里云镜像:https://developer.aliyun.com/mirror/kubernetes?spm=a2c6h.13651102.0.0.3e221b11qRSjZE
这里使用指定版本安装kubernetes的 1.19.4-0 版本
yum install -y kubelet-1.19.4-0 kubeadm-1.19.4-0 kubectl-1.19.4-0
查看文档地址安装好后,在执行如下操作
通过kubeadm config images list查看需要安装的镜像和版本
创建集群:
kubeadm init \
--kubernetes-version=v1.19.4 \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12 \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--apiserver-advertise-address=10.10.10.10 \
--v=6
完成会看到这句话
Your Kubernetes control-plane has initialized successfully!
就代表初始化成功,否则失败
然后执行如下操作:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
记录初始化完成后的最后一条命令
kubeadm join 10.10.10.10:6443 --token azyw4b.009sd5vupsnwrtz3 --discovery-token-ca-cert-hash sha256:a779406c375aabea58040a6501242ff8f3441b4d7d4c079f6f8083df2b5b2741
原本的是有效时间过期的加入集群命令,可以通过如下操作创建一个永久令牌
kubeadm token create --ttl 0 --print-join-command
使用令牌在node节点操作一次
查看节点状态:应该此时的状态为NotReady是未安装网络插件
kubelet get nodes
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
查看状态,等待就绪
watch kubectl get pod -n kube-system -o wide
查看到状态为Running为止
在次查看节点状态:应该此时的状态为Ready
kubelet get nodes
到此,K8S集群搭建基本工作加完成了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。