官网
 常见的三种安装k8s方式
 1.kubeadm
 2.kops:自动化集群制备工具
 3.kubespray: 提供了 Ansible Playbook
 下面以kubeadm安装k8s
 kubeadm的安装是通过使用动态链接的二进制文件完成的,目标系统需要提供 glibc
##使用 ss 或者 netstat 检测端口是否启用
ss -tuln | grep 6443
netstat -tuln | grep 6443
## -t 选项表示显示 TCP 端口。
## -u 选项表示显示 UDP 端口。
## -l 选项表示显示监听状态的套接字。
## -n 选项表示不解析服务名称,直接显示端口号。
kubeadm:用来初始化集群的指令。
 kubelet:在集群中的每个节点上用来启动 Pod 和容器等。
 kubectl:用来与集群通信的命令行工具。
 查看SeLinux 的状态
sestatus
# 将 SELinux 设置为 permissive 模式(相当于将其禁用)
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
新建配置源 /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
##
安装 kubelet kubeadm kubectl 禁用对kubernetes相关软件包的排除
sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

 启动kubelet 服务
sudo systemctl enable --now kubelet
关闭防火墙
systemctl stop iptables && systemctl disable iptables
systemctl stop firewalld  && systemctl disable firewalld
修改hostname
hostnamectl set-hostname 主机名
机器添加hosts
echo "192.168.252.79 master1" >> /etc/hosts
安装gcc开发工具等
yum install -y  gcc*   
yum install -y vim-enhanced wget  bash-completion  lrzsz ntpdate sysstat iftop htop dstat lsof chkconfig unzip telnet nmap net-tools git bzip2  bind-utils
yum install -y expat-devel  pcre-devel libxml2-devel  openssl openssl-devel  bzip2-devel  libjpeg-devel  libpng-devel   freetype-devel    libXpm-devel  libmcrypt-devel   libaio  libaio-devel  php-mysqlnd   mysql-devel gd-devel  gdbm-devel  glib2-devel  libdb4-devel    libdb4-devel  libicu-devel   libxslt-devel   readline-devel    xmlrpc-c   xmlrpc-c-devel curl-devel yum-utils device-mapper-persistent-data lvm2  conntrack-tools
时间同步
ntpdate 1.cn.pool.ntp.org
echo "*/15 * * * * /usr/sbin/ntpdate 1.cn.pool.ntp.org  >/dev/null 2>&1"  >>/var/spool/cron/root
升级/重启
yum update -y 
reboot
生成密钥
ssh-keygen -t rsa
##查看生成的公钥
cat ~/.ssh/id_rsa.pub
## 如果有多个节点 1master 2个node 需要将公钥拷贝到其他机器
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.252.62
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.252.63
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.252.64
机器参数修改
cat <<EOF | tee /etc/sysctl.d/k8s.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl -p /etc/sysctl.d/k8s.conf