官网
常见的三种安装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