kubernetes的安装教程

一、环境初始化

准备三台全新的CentOS 7.9系统的虚拟机,一台作为master,主机名为k8s-master;两台作为node节点服务器,主机名分别为k8s-node-1和k8s-node-2

1.1 初始化

进行网络配置(配置静态IP),主机名的修改,关闭firewalld功能以及禁用selinux功能

1.2 配置hosts

配置hosts文件,通过主机名互相访问(每台服务器都要配置,方便用域名解析)

cat >> /etc/hosts << EOF
masterIP地址 k8s-master
node-1IP地址 k8s-node-1
node-2IP地址 k8s-node-2
...
EOF

1.3 关闭selinux

# 临时关闭
setenforce 0
# 永久关闭
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

1.4 禁用firewalld

systemctl stop firewalld && systemctl disable firewalld

1.5 关闭交换分区

# 临时关闭
swapoff -a
# 永久关闭
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

1.6 调整内核参数

# 修改linux的内核参数,添加网桥过滤和地址转发功能,转发IPv4并让iptables看到桥接流量
cat <<EOF | tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
# 加载网桥过滤模块
modprobe overlay
modprobe br_netfilter
# 编辑/etc/sysctl.d/kubernetes.conf文件,添加如下配置:
cat << EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF
# 应用sysctl参数而不重新启动
sysctl -p

# 查看br_netfilter和 overlay模块是否加载成功
lsmod | grep -e br_netfilter -e overlay
# br_netfilter           22256  0 
# bridge                151336  1 br_netfilter
# overlay                91659  0

1.7 更新和配置软件源

cd /etc/yum.repos.d
mkdir backup 
mv CentOS* backup/
curl -O  http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all && yum makecache fast
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.8 配置ipvs功能

# 安装ipset和ipvsadm
yum install ipset ipvsadm -y

# 添加需要加载的模块写入脚本文件
cat <<EOF > /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
# 为脚本文件添加执行权限
chmod +x /etc/sysconfig/modules/ipvs.modules
# 执行脚本文件
/bin/bash /etc/sysconfig/modules/ipvs.modules

1.9 配置时间同步

systemctl start chronyd && systemctl enable chronyd

1.10 重启

reboot

二、配置docker环境

2.1 安装docker环境

yum install -y docker-ce docker-ce-cli

2.2 配置docker

mkdir -p /etc/docker
cd /etc/docker

vim daemon.json

{
  "registry-mirrors": ["https://hub.docker-alhk.dkdun.com/"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}

2.3 配置docker服务自启动

# 启动docker并设置开机自启
systemctl enable --now docker
# 验证
systemctl status docker

备注: 到此处,就可以将master服务器关机,克隆master服务器得到两台node节点服务器。切记修改克隆机的IP地址和主机名

三、配置k8s集群环境

3.1 配置k8s组件源

cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
# 更新索引缓冲
yum makecache

3.2 安装

# 安装
yum install -y kubeadm-1.23.17-0 kubelet-1.23.17-0 kubectl-1.23.17-0 --disableexcludes=kubernetes

# 启动kubelet并设置开机自启
systemctl enable --now kubelet

四、集群初始化

4.1 kubeadm init

仅在master节点执行

kubeadm init \
    --kubernetes-version=v1.23.17 \
	--pod-network-cidr=10.224.0.0/16 \
	--service-cidr=10.96.0.0/12 \
	--apiserver-advertise-address=masterIP地址 \
	--image-repository=registry.aliyuncs.com/google_containers

成功后会提示以下信息:
在这里插入图片描述
然后继续执行

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

4.2 node节点加入集群

# 上面得到的命令
kubeadm join 192.168.178.148:6443 --token kcrra6.p9aovxw5qqw7wpdj \
	--discovery-token-ca-cert-hash sha256:9dee3172d310416daac35834128d724821a8b4096b85bedc59993332ef8aeb3b 

如果成功,检查集群节点状态,在master上执行以下命令

kubectl get nodes

在这里插入图片描述
分配worker role(在master上执行)

kubectl label node k8s-node-1 node-role.kubernetes.io/worker=worker
kubectl label node k8s-node-2 node-role.kubernetes.io/worker=worker

4.3 安装Calico网络插件(在master执行)

kubectl apply -f https://docs.projectcalico.org/archive/v3.25/manifests/calico.yaml 
# 验证 节点状态 
kubectl get nodes

此处由于网速问题,可能需要等待很长一段时间,状态才会从NotReady转化为Ready
在这里插入图片描述

4.4 k8s配置ipvs

kubectl edit configmap kube-proxy -n kube-system
# 修改配置
mode: "ipvs"

删除所有kube-proxy pod使之重启

kubectl delete pods -n kube-system -l k8s-app=kube-proxy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值