设置 hostname
hostnamectl set-hostname k21-master
vi /etc/hosts
关闭 Swap
如果不关闭,默认配置的 kubelet 将无法启动
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
禁用 SELINUX
setenforce 0
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/sysconfig/selinux
sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config
关闭并设置开机关闭查看服务状态
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
创建/etc/sysctl.d/k8s.conf 文件
cat >>/etc/sysctl.d/k8s.conf<< OFF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
OFF
#执行如下命令使修改生效
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf
加载 ipvs 模块
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
lsmod | grep ip_v
lsmod | grep ip_vs
lsmod | grep nf_conntrack_ipv4
yum install -y ipvsadm ipset
Docker 安装
step 1: 安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
Step 2: 设置 stable 镜像 aliyun 仓库
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Step 3:更新 yum 软件包索引
yum makecache fast
Step 4:查看目前官方仓库的 docker 版本
yum list docker-ce.x86_64 --showduplicates |sort -r #从高到低列出 Docker-ce 的版本
Step 5:安装
yum install docker-ce-20.10.8 docker-ce-cli-20.10.8 containerd.io-1.4.10 -y –-allowerasing
# 启动
systemctl start docker
systemctl enable docker --now
Step 6: 设置 Docker 镜像加速器
修改 docker 配置以适应 kubelet
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://7pjglktv.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
systemctl daemon-reload;systemctl restart docker
kubeadm, Kubelet, Kubectl 安装
kubeadm 是 kubernetes 的集群安装工具,能够快速安装 kubernetes 集群。
- kubeadm init 启动一个 Kubernetes 主节点
- kubeadm join 启动一个 Kubernetes 工作节点并且将其加入到集群
- kubeadm upgrade 更新一个 Kubernetes 集群到新版本
- kubeadm config 如果你使用 kubeadm v1.7.x 或者更低版本,需要对你的集群做一些 kubeadm upgrade 配置以便使用
- kubeadm token 使用 kubeadm join 来管理令牌
- kubeadm reset 还原之前使用变
- kubeadm version 打印出 kubeadm 版本
- kubeadm alpha 预览一组可用的新功能以便从社区搜集反馈
添加yum源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
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安装
yum install kubeadm-1.21.5 kubectl-1.21.5 kubelet-1.21.5 -y
kubectl version
systemctl daemon-reload
systemctl start kubelet.service
systemctl enable kubelet.service
systemctl status kubelet.service
集群安装-master
kubeadm init --kubernetes-version=v1.21.5 --apiserver-advertise-address=192.168.18.80 --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.10.0.0/16 --pod-network-cidr=10.20.0.0/16
下面的命令是配置如何使用 kubectl 访问集群的方式:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
添加网路
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
work节点初始化
work 节点的配置,相对 master 来说简单许多,只需要规划好节点的名称即可
设置一个机器名为work1
hostnamectl set-hostname k21-work1
# 配置对应的 ip
vi /etc/hosts
加入集群
kubeadm join 192.168.18.80:6443 --token xxxxxxxxxxxxxxxx \
--discovery-token-ca-cert-hash sha256:4xxxxxx