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的步骤,希望能够帮助到你!

相关推荐
仙柒4152 小时前
Docker存储原理
运维·docker·容器
快乐的哈士奇5 小时前
LangFuse 自托管实战:选型理由、Docker 部署与常用配置全解析
运维·人工智能·docker·容器
weixin_449290017 小时前
Docker + MySQL 在 Windows 11 上的本地安装部署文档
mysql·docker·容器
Ysn07197 小时前
中文乱码:在 Docker 容器中设置中文语言环境
运维·python·docker·容器
米高梅狮子7 小时前
01.CentOS-Stream-8-packstack安装OpenStack
linux·云原生·容器·kubernetes·centos·自动化·openstack
zxd0203118 小时前
EFK(Elasticsearch + Fluentd + Kibana) 日志收集系统
运维·docker·jenkins
终端行者8 小时前
Jenkins Pipeline 企业级用法 参数化构建+Ansible发布---上
docker·ansible·jenkins·cicd
亚空间仓鼠9 小时前
Docker容器化高可用架构部署方案(十三)
docker·容器·架构
米高梅狮子10 小时前
01.mysql的备份与恢复
运维·数据库·mysql·docker·容器·kubernetes·github
console.log('npc')10 小时前
Windows 11 → WSL2 → Ubuntu → Docker → Codex → Sub2API
windows·ubuntu·docker