Centos7部署k8s(单master节点安装)

单master节点部署k8s集群(Centos)

一、安装前准备

1、修改主机名

按照资源准备修改即可

复制代码
# master01 
hostnamectl set-hostname master01 ; bash
# node1
hostnamectl set-hostname node1 ; bash
# node2
hostnamectl set-hostname node2 ; bash

2、修改hosts文件

  • 以下命令所有节点都要执行

    cat > /etc/hosts <<EOF
    192.168.2.10 master01
    192.168.2.20 node1
    192.168.2.30 node2
    EOF

3、系统优化

  • 安装依赖文件(以下命令所有节点都要执行)

    yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git

  • 关闭防火墙,设置防火墙为iptables,并清空规则(以下命令所有节点都要执行)

    systemctl stop firewalld && systemctl disable firewalld

    yum -y install iptables-services && systemctl start iptables && systemctl enable iptables && iptables -F && service iptables save

  • 关闭swap分区和selinux(以下命令所有节点都要执行)

    关闭swap分区

    swapoff -a && sed -i 's/.swap./#&/g' /etc/fstab

    关闭selinux

    setenforce 0 &&sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

  • 调整内核参数(以下命令所有节点都要执行)

    modprobe br_netfilter
    modprobe overlay

    yum -y install ipset ipvsadm

    cat > /etc/sysconfig/modules/ipvs.modules <<EOF
    modprobe -- ip_vs
    modprobe -- ip_vs_rr
    modprobe -- ip_vs_wrr
    modprobe -- ip_vs_sh
    EOF

    kernel_version=(uname -r | cut -d- -f1) echo kernel_version

    if [ expr $kernel_version \> 4.19 -eq 1 ]
    then
    modprobe -- nf_conntrack
    else
    modprobe -- nf_conntrack_ipv4
    fi

    chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack

    cat <<EOF> /etc/sysctl.d/kubernetes.conf
    net.bridge.bridge-nf-call-iptables=1
    net.bridge.bridge-nf-call-ip6tables=1
    net.ipv4.ip_forward=1
    net.ipv4.tcp_tw_recycle=0
    vm.swappiness=0 # 禁止使用 swap 空间,只有当系统 OOM 时才允许使用它
    vm.overcommit_memory=1 # 不检查物理内存是否够用
    vm.panic_on_oom=0 # 开启 OOM
    fs.inotify.max_user_instances=8192
    fs.inotify.max_user_watches=1048576
    fs.file-max=52706963
    fs.nr_open=52706963
    net.ipv6.conf.all.disable_ipv6=1
    net.netfilter.nf_conntrack_max=2310720
    EOF

    sysctl -p /etc/sysctl.d/kubernetes.conf
    echo 1 > /proc/sys/net/ipv4/ip_forward

    cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
    overlay
    br_netfilter
    EOF

二、部署Containered

  • 以下命令所有节点都要执行

    ##部署源并安装containerd
    wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
    yum list |grep containerd
    yum -y install containerd.io-1.6.4-3.1.el7.x86_64
    mkdir -p /etc/containerd
    containerd config default | sudo tee /etc/containerd/config.toml
    ##修改cgroup Driver为systemd
    sed -ri 's#SystemdCgroup = false#SystemdCgroup = true#' /etc/containerd/config.toml
    ##应用配置
    systemctl daemon-reload && systemctl enable containerd --now

    ##设置crictl
    cat << EOF >> /etc/crictl.yaml
    runtime-endpoint: unix:///var/run/containerd/containerd.sock
    image-endpoint: unix:///var/run/containerd/containerd.sock
    timeout: 10
    debug: false
    EOF

    启动完成后就可以使用 containerd 的本地 CLI 工具 ctr 和 crictl 了,比如查看版本:

    ctr version
    crictl version

三、安装kubernetes

1、配置安装源

2、安装

  • 以下命令所有节点都要执行

    yum install -y kubeadm-1.22.10 kubelet-1.22.10 kubectl-1.22.10

    systemctl enable --now kubelet

四、初始化master添加node

1、初始化master节点

  • 以下命令只在master01执行

    kubeadm init
    --kubernetes-version=v1.22.10
    --apiserver-advertise-address=192.168.2.10
    --image-repository registry.aliyuncs.com/google_containers
    --pod-network-cidr=10.244.0.0/16
    --token-ttl=0
    --upload-certs

    mkdir -p HOME/.kube cp -i /etc/kubernetes/admin.conf HOME/.kube/config
    chown (id -u):(id -g) $HOME/.kube/config

  • 初始化完成后会输出一段日志

    .....
    .....
    [addons] Applied essential addon: CoreDNS
    [addons] Applied essential addon: kube-proxy

    Your Kubernetes control-plane has initialized successfully!

    To start using your cluster, you need to run the following as a regular user:

    复制代码
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config

    You should now deploy a pod network to the cluster.
    Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
    https://kubernetes.io/docs/concepts/cluster-administration/addons/

    Then you can join any number of worker nodes by running the following on each as root:

    kubeadm join 192.168.2.151:6443 --token v2r5a4.veazy2xhzetpktfz
    --discovery-token-ca-cert-hash sha256:daded8514c8350f7c238204979039ff9884d5b595ca950ba8bbce80724fd65d4

    最后这个kubeadm json... 是node节点加入集群的命令,需要在要加入集群的node节点上执行

2、node节点加入集群

  • 以下命令只在node节点执行

    kubeadm join 192.168.2.151:6443 --token v2r5a4.veazy2xhzetpktfz
    --discovery-token-ca-cert-hash sha256:daded8514c8350f7c238204979039ff9884d5b595ca950ba8bbce80724fd65d4

五、安装网络插件flannel

以上是centos7部署k8s的步骤,希望能够帮助到你!

相关推荐
Serverless社区1 小时前
MCP云托管最优解,揭秘国内最大MCP中文社区背后的运行时
阿里云·云原生·serverless·函数计算
掘金-我是哪吒1 小时前
分布式微服务系统架构第120集:专业WebSocket鉴权
分布式·websocket·微服务·云原生·架构
哈哈幸运1 小时前
Linux Awk 深度解析:10个生产级自动化与云原生场景
linux·云原生·自动化·awk·三剑客
lswzw2 小时前
Ubuntu K8s集群安全加固方案
安全·ubuntu·kubernetes
孔令飞2 小时前
彻底学会 gRPC:用 Go 实现一个迷你考试服务
人工智能·云原生·go
李菠菜3 小时前
Kubernetes上通过Helm部署高可用Redis集群
docker·容器·kubernetes
李菠菜3 小时前
修改KubeSphere外网访问端口
docker·容器·kubernetes
福大大架构师每日一题3 小时前
docker v28.1.1 正式发布!修复关键Bug,网络与安全性再升级
网络·docker·bug
一个小坑货4 小时前
Docker 部署 PostgreSQL 数据库
数据库·docker·postgresql
残轩4 小时前
Win10 家庭版 Docker 环境搭建详解(基于 WSL2)
前端·后端·docker