CentOs7 上安装kubernetes集群

环境概述

使用的是VM virtualBox安装虚拟机,镜像是centOs7.使用的kuberneters是v1.18.3.给虚拟机分配的内存是2核4G,master上安装kuberneters至少是2核。

统一环境配置

复制出一个镜像,命名为k8s,启动这个镜像,进行一下操作:
  • 临时关闭交换空间
swapoff -a
  • 避免开机启动交换空间
echo "vm.swappiness = 0">> /etc/sysctl.conf   
  • 关闭防火墙
service firewalld stop
  • 避免开机启动防火墙
systemctl disable firewalld
  • 配置DNS
    配置完成后可以ping www.baidu.com,看下能否正常上网
vi /etc/resolv.conf
search DHCP HOST
nameserver 172.0.0.29
namesever 202.96.134.133
  • 安装docker
yum install docker
  • 修改daemon.json配置文件来使用阿里镜像加速
vi /etc/docker/deamon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "registry-mirrors": [
    "https://uiu1mrpn.mirror.aliyuncs.com",
    "https://dockerhub.azk8s.cn"
  ],
  "storage-driver": "overlay2"
}
  • 启动docker,并设置开机时自动启动
service docker start
systemctl enable docker
  • 安装kubernetes必备工具,分别是 kubeadm,kubelet,kubectl
    摘抄自这篇博客:https://blog.csdn.net/hanyren/article/details/103145633
k8s.sh可执行文件:

#!/bin/sh
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
#baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
#gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

# Set SELinux in permissive mode (effectively disabling it)
# 通过运行setenforce 0并sed ...有效禁用SELinux,将其设置为许可模式。这是允许容器访问主机文件系统所必需的,例如Pod网络所需要的。您必须执行此操作,直到kubelet中的SELinux支持得到改善。
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

# --now 与 enable 命令连用时, 表示同时还要启动该单元

systemctl enable --now kubelet

# -----------------------------------------------------------------------------------

# RHEL / CentOS 7上的一些用户报告了由于绕过iptables而导致流量无法正确路由的问题。您应该确保 net.bridge.bridge-nf-call-iptables在sysctl配置中将其设置为1
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system
————————————————
版权声明:本文为CSDN博主「hanyren」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hanyren/article/details/103145633
  • 设置开机时启动
systemctl enable kubelet.service
  • 设置时间同步
  • 设置时区,用下面的命令根据选项设置即可
      tzselect
    
  • 时间同步
        yum install ntpdate
        # 设置系统时间与网络时间同步(cn.pool.ntp.org 位于中国的公共 NTP 服务器)
        ntpdate cn.pool.ntp.org
        # 将系统时间写入硬件时间
        hwclock --systohc
    
    这里在同步时间的时候一直报错,找了很多办法都没有解决,结果第二天试的时候就可以了。到这里统一的配置就完成了。将虚拟机reboot,然后关机。reboot是为了让刚才的配置生效。

单节点配置

kubernetes集群至少需要3台虚拟机,一台master,两台node.把刚才配置好的镜像复制3份,分别配置好它们的ip和hostname.
  • 配置ip
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE="Ethernet"
PROXY_METHOD="none"
BOOTPROTO="static"
NAME="enp0s3"
IPADDR="192.168.1.141"
GATEWAY="192.168.1.1"
MASK="255.255.255.0"
ONBOOT="yes"
  • 配置hostname
# 修改主机名
hostnamectl set-hostname kubernetes-master

# 配置 hosts
cat >> /etc/hosts << EOF
192.168.1.141 kubernetes-master
EOF

虚拟机环境配置完毕,下面就可以配置kubernetes集群了

配置kubernetes集群

  • 创建并修改配置
   cd /usr/local
   mkdir kubernetes
   cd kubernetes
   mkdir cluster
   cd cluster
   kubeadm config print init-defaults --kubeconfig ClusterConfiguration > kubeadm.yml
  • 修改kubeadm.yml
   # 修改为主节点 IP
   advertiseAddress: 192.168.81.130
   # 国内不能访问 Google,修改为阿里云
   imageRepository: registry.aliyuncs.com/google_containers
   # 配置 POD 所在网段为我们虚拟机不重叠的网段(这里用的是 Flannel 默认网段)
   podSubnet: "10.244.0.0/16"
  • 查看所需要的镜像
kubeadm config images list --config kubeadm.yml
  • 拉去所需要的镜像
kubeadm config images pull --config kubeadm.yml
  • 安装主节点
kubeadm init --config=kubeadm.yml --upload-certs | tee kubeadm-init.log
  • 配置cubectl
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

# 非 ROOT 用户执行
chown $(id -u):$(id -g) $HOME/.kube/config
  • 验证是否成功
kubectl get node
  • 安装从节点
    从安装节点的日志中,抠出这一段到node节点运行即可,日志在安装主节点指定的日志kubeadm-init.log中
kubeadm join 192.168.1.130:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:54b9059b15a0d6729ccce101046e4bef1fc60c20625f6528a587859f849ac63a
  • 回到master查看是否成功
kubectl get nodes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值