Kubernetes集群搭建

实验机器配置

主机名IP地址操作系统版本角色
sun003192.168.159.164centos7.9master
sun004192.168.159.165centos7.9worker1
sun005192.168.159.166centos7.9worker2

K8s:1.22.7
Docker:20.10.22
虚拟机至少2G,2核。

准备工作

  1. 在所有节点,修改主机名
hostnamectl set-hostname 主机名
hostnamectl status
  1. 在所有节点,修改/etc/hosts文件

在这里插入图片描述

  1. 在所有节点,关闭防火墙和selinux
systemctl disable firewalld.service
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled 

firewall-cmd --get-default-zone
getenforce
  1. 在所有节点,关闭swap,注释掉swap那一行
vi /etc/fstab
  1. 在所有节点,配置yum源
vi /etc/yum.repos.d/k8s.repo

[kubernetes]
name=kubernetes aliyun repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
enabled=1

yum update
  1. 在所有节点,安装Docker,设置开机启动
yum -y install docker-ce
systemctl enable docker --now
  1. 新建docker配置文件/etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"]
}

systemctl daemon-reload
systemctl restart docker
  1. 在所有节点,加载模块,设置内核参数
modprobe  br_netfilter

cat << EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl -p /etc/sysctl.d/k8s.conf
  1. 在所有节点,配置ssh免密登录
ssh-keygen
ssh-copy-id 主机名
  1. 在所有节点,下载缺少的镜像,并导入
wget ftp://ftp.rhce.cc/cka-tool/coredns-1.21.tar
docker load -i coredns-1.21.tar
  1. 时间同步
yum install ntpdate -y
ntpdate time.windows.com

集群搭建

  1. 在所有节点,安装相关软件包
yum -y install kubeadm-1.22.7-0 kubelet-1.22.7-0 kubectl-1.22.7-0
  1. 在所有节点,启动kubelet,并设置开机启动
systemctl restart kubelet
systemctl enable kubelet
  1. 在所有节点,锁定版本
yum install yum-plugin-versionlock.noarch
yum versionlock kubeadm kubelet kubectl
  1. 在所有节点,添加kubectl命令补全
yum install bash-completion
source <(kubectl completion bash)
echo 'source <(kubectl completion bash)' >>~/.bashrc
  1. master节点,初始化
kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.22.7 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.245.0.0/16 --apiserver-advertise-address=192.168.159.164 --control-plane-endpoint=192.168.159.164 --ignore-preflight-errors=Swap

在这里插入图片描述

  1. 根据上面提示,执行命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
  1. 根据提示,将worker加入集群,token也可以使用如下命令获取
# 获取token
kubeadm token create --print-join-command

# worker加入集群
kubeadm join 192.168.159.164:6443 --token danjds.kbiw7xkzhaz88dyu --discovery-token-ca-cert-hash sha256:1fbbac20e830b7376177c0e24c6c8be28e982c514c525e7ade2b2ea72e824126

在这里插入图片描述

  1. 在master中查看,此时状态各节点STATUS仍然为NotReady,coreDNS状态不是Running,待安装网络插件后即会正常
kubectl get nodes

在这里插入图片描述

  1. 在master上,安装网络插件calico,修改calico.yaml里的pod网段,修改为init时--pod-netowrk-cidr指定的网段
wget https://docs.projectcalico.org/manifests/calico.yaml
vi calico.yaml

kubectl apply -f calico.yaml
kubectl get nodes

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

概念补充

token:加入集群需要用到token和Master节点的ca证书sha256编码hash 值,默认 token 的有效期为 24 小时。当过期之后,该 token 就不可用了,可以执行如下命令重新生成:

kubeadm token create
kubeadm token list

也可以生成一个永不过期的 toke

kubeadm token create --ttl 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值