Kubernetes(k8s)集群搭建

0 目标

  • 安装k8s
  • 一个master,一个worker

1 准备工作

1)关闭防火墙

systemctl stop friewalld
systemctl disable friewalld

2)关闭selinux(安全机制)

sed -i 's/enforcing/disabled/' /etc/selinux/config #永久
setenforce 0 #临时

3、关闭swap(k8s禁止虚拟内存以提高性能)

sed -ri 's/.*swap.*/#&/' /etc/fstab #永久
swapoff -a #临时
free -m #如果swap全为0,表示已经关闭

4、host/name

vim /etc/hostname
k8s-master
k8s-worker
cat >> /etc/hosts <<EOF
192.168.1.81 k8s-master
192.168.1.82 k8s-worker
EOF

5、设置网桥参数

cat > /etc/sysctl.d/k8s <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system #生效

6、时间同步服务器

  • 安装:
yum install -y chrony
  • vim /etc/chrony.conf 注释掉原有server,增加下面两条:
server 210.72.145.44 iburst
server ntp.aliyun.com iburst
  • 启动:
systemctl enable chronyd
systemctl restart chronyd.service
chronyc sources -v
  • 修改时区
timedatectl set-timezone Asia/Shanghai
timedatectl
date

2 docker(master+worker)

  • 下载:
wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
  • 安装(使用20.10.8+kube1.22.2,一直失败,只好用20.10.7+kube1.21.2):
yum -y install docker-ce-20.10.7
  • 配置 Docker 守护程序,尤其是使用 systemd 来管理容器的 cgroup
  • fl791z1h.mirror.aliyuncs.com
mkdir /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{
"registry-mirrors": ["https://fl791z1h.mirror.aliyuncs.com"]
}
EOF
  • 启动
systemctl enable docker
systemctl daemon-reload
systemctl restart docker

3 k8s(master+worker)

cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun. com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
  • 下载,安装,这里使用1.22.2失败,只好用1.21.2
yum -y install kubelet-1.21.2 kubeadm-1.21.2 kubectl-1.21.2
systemctl enable kubelet.service
yum list installed | grep kubeadm
yum list installed | grep kubelet
yum list installed | grep kubectl
kubelet --version

4 初始化master

  • 在81上maser
kubeadm init --apiserver-advertise-address=192.168.1.81 \
--image-repository=registry.aliyuncs.com/google_containers \
--kubernetes-version=v1.21.2 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.9.0/16

执行结果:(末尾打印日志)

查看init后拉取的镜像

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

如果不执行上一句,错误:

The connection to the server localhost:8080 was refused - did you specify the right host or port?

5 加入worker

kubeadm join 192.168.1.81:6443 --token nhj46j.ta80geswifidyv82 \
	--discovery-token-ca-cert-hash sha256:56775d63c1a1e48684d4656e311dfeea5e42bc2eccdee511487a5671854ded11

6 网络配置

在master中

kubectl get nodes

**“status”=NotReady **没有准备好

  • 如果无法下载,可以到我的“下载资源”中,找到下个文件。
wget https://docs.projectcalico.org/v3.8/manifests/calico.yaml

打开calico.yaml, 将192.168.0.0/16修改为10.96.0.0/12

kubectl apply -f calico.yaml

过几分钟
**“status”=Ready **

附录

1、网络配置

  • 重启网络
nmcli c reload
nmcli d reapply ens33
  • 确保每个节点上 MAC 地址和 product_uuid 的唯一性
ifconfig -a
cat /sys/class/dmi/id/product_uuid

如果是复制的虚拟机,需要重新生成mac,并且修改ifcfg-enp0s3.UUID=product_uuid

cd /etc/sysconfig/network-scripts/
vi ifcfg-enp0s3

2、安装Dashboard

  • 采用这个链接始终无法下载,只好到github上下载源码,然后上传recommended.yaml至centos
  • 如果无法下载,可以到我的“下载资源”中,找到下个文件。
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta4/aio/deploy/recommended.yaml

然后运行

kubectl apply -f recommended.yaml 

过几分钟查看pods状态

kubectl get pods --all-namespaces
  • 待补充

3、参考资源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值