centos7搭建k8s集群 v1.22.4

centos7搭建k8s集群

环境:

ip 主机名 角色
192.168.25.133 k8s01 master
192.168.25.134 k8s02 slave
192.168.25.135 k8s03 slave

安装必要的软件

yum install -y net-tools.x86_64 wget yum-utils

配置hosts

cat >> /etc/hosts << EOF
192.168.25.133 k8s01
192.168.25.134 k8s02
192.168.25.135 k8s03
EOF

关闭防火墙

systemctl disable firewalld
systemctl stop firewalld

禁用selinux,让容器可以顺利地读取主机文件系统

setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config

关闭swap,swap是操作系统在内存吃紧的情况申请的虚拟内存,按照Kubernetes官网的说法,Swap会对Kubernetes的性能造成影响,不推荐使用

swapoff -a   #临时关闭
vi /etc/fstab   #永久关闭,删除或者注释掉swap配置哪一行
临时关闭 和 永久关闭 择一执行即可

如果不禁用,则需修改 vi /etc/sysconfig/kubelet :

 KUBELET_EXTRA_ARGS="--fail-swap-on=false"

将桥接的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

在三台机器分别执行,生成各自的ssh的公私钥对

ssh-keygen -t rsa -f /root/.ssh/id_rsa -P "" 

在三台机器分别执行配置其他两台的机器的免密访问操作

ssh-copy-id k8s01
ssh-copy-id k8s02
ssh-copy-id k8s03

下载docker.repo包至 /etc/yum.repos.d/目录

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

新建kubernetes仓库文件

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/rpm-package-key.gpg
        https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
EOF

重启同步系统时间(保证多台服务的时间一致)

systemctl restart chronyd

配置docker仓库

yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker,启动docker,设置开机启动

yum install docker-ce
systemctl enable docker && systemctl start docker

配置镜像加速

cat >> /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://3******.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

重新加载并重启docker

systemctl daemon-reload && systemctl restart docker

安装kubelet kubeadm kubectl,启动kubelet并设置开机自启

yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet

使用kubeadm version可以查看kubernetes的最新版本号是多少

在master节点上执行初始化,初始化会比较慢,耐心点等待,以下命令是直接按装最新版本的kubernetes,想安装指定版本的kubernetes需要加上参数kubernetes-version即可,例如:–kubernetes-version=“v1.17.4”

kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.1.0.0/16 --apiserver-advertise-address=192.168.25.133 --image-repository registry.aliyuncs.com/google_containers

master节点初始化完成会生成一个token值,需要把这个token值保存起来,以免弄丢,slave节点加入集群是需要使用到这个token的。

在两台slave节点上执行加入k8s集群

kubeadm join 192.168.25.133:6443 --token 8000y1.xh9227rgmyfy0ljx       

slave节点成功加入集群后会显示This node has joined the cluster提示信息

在master上执行kubectl get nodes会报错:The connection to the server localhost:8080 was refused - did you specify the right host or port?

解决方法:将/etc/kubernetes/admin.conf配置进环境变量

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile

重新加载环境变量

source /etc/profile 

再次执行kubectl get nodes命令成功

admin.conf复制到各个节点后再配置好环境变量也可以在node节点上执行kubectl命令查看

scp /etc/kubernetes/admin.conf root@k8s03:/etc/kubernetes/
scp /etc/kubernetes/admin.conf root@k8s02:/etc/kubernetes/

在k8s02和k8s03上分别执行

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile
source /etc/profile 

master节点安装网络插件,这里我选择安装flannel

官方提供的安装flannel方式,需要科学上网,下面会提供kube-flannel.ym的具体内容

kubectl apply -f https://raw
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值