centos服务器搭建k8s集群

简单说几句

我这里用到了CentOS7.6服务器3台(2核4G),我是自己在我windows的虚拟机弄了三台centos,我后面会把我安装的文档放在下面,需要的话自己下去看看。这里多啰嗦一句,搭建好一台,后面两台直接克隆,这样比较节约时间和精力。看笔记的时候要仔细,一步一步来肯定可以搭建好的。

环境准备

1- 修改hostname (可以不用修改,但是修改下后面用起来爽点)

vi /etc/hostname

2- 配置hosts文件

vi /etc/hosts

例子: 192.168.xx.x1 master
      192.168.xx.x2 node01
      192.168.xx.x3 node02 

3- 关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

4- 禁用selinux

# 临时禁用selinux
setenforce 0
# 永久关闭 修改/etc/sysconfig/selinux文件设置
sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

5- 禁用交换分区

swapoff -a
# 永久禁用。建议永久禁用,后面万一重启忘了禁用,不仔细看bug信息又要花时间找bug
sed -i 's/.*swap.*/#&/' /etc/fstab

6- 修改系统配置

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

7- 同步时间

yum install ntp
systemctl enable ntpd
systemctl start ntpd
timedatectl set-timezone Asia/Shanghai
timedatectl set-ntp yes
ntpq -p

或者用

yum -y install ntpdate
ntpdate time2.aliyun.com

最后重启下所有的服务器。下面我们开始装docker

安装docker

# 安装docker所需的工具
yum install -y yum-utils device-mapper-persistent-data lvm2
# 配置阿里云的docker源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 指定安装这个版本的docker-ce
yum install docker-ce.x86_64
# 启动docker
systemctl enable docker && systemctl start docker

这里可以配置下加速,我用的是阿里的,阿里docker镜像加速

安装k8s

1- 配置k8s下载源

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=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

2- 安装kubeadm、kubectl、kubelet

yum install -y kubectl kubeadm kubelet

3- 启动kubelet服务

systemctl enable kubelet && systemctl start kubelet

master配置

4- 初始化k8s(这一步会有点慢,可以吃个东西等,省的太无聊)

kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.23.4 --apiserver-advertise-address 你的master服务器ip --pod-network-cidr=10.244.0.0/16 --token-ttl 0

5- 配置config文件(上一步成功会告诉你)

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

6- 检验结果
到这一步已经差不多了,后面就差将节点join到master。我们校验下master

kubectl get pods --all-namespaces

节点配置

master初始化成功会有一条让节点join到master命令的,如果你忘了你可以执行下面的命令来看join命令:kubeadm token create --print-join-command

类似下面这条命令

kubeadm join xxx.xxx.xxx.xxx:6443 --token ncfrid.xxxxxxxx 
    --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

然后我们来到master服务器上执行 kubectl get nodes 看看集群情况

会发现还是处于Notready,这里需要我们安装flane组件,大家可以去这个兄弟的博客看看(只需要在master分支):Kubernetes 安装flannel组件(本地 kube-flannel.yml 文件

可视化工具

1- 安装cockpit管理集群

yum install cockpit
yum install cockpit-docker.x86_64
yum install cockpit-kubernetes.x86_64
systemctl enable cockpit.socket 
systemctl start cockpit.socket

成功后访问 master ip:9090 ,账户密码是这台服务器账户和密码

2- dashboard安装

直接看我之前的文章吧,再写一次没意义:Kubernetes 单机安装—kubeadm

遇到的错误

安装的时候碰到了问题,我这里分享下:

1- error execution phase kubelet-start: error uploading crisocket: timed out waiting for the condition

解决:

swapoff -a
kubeadm reset
systemctl daemon-reload
systemctl restart kubelet
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X  

这里说一嘴,如果执行kubeadm init初始化,可以kubeadm reset重置,在进行初始化

2- kubectl這些命令下載了但是沒有用(这个是因为我之前安装了,重新装的时候出现问题了,只有master出现这个问题,节点没有)

解决:可以用yum remove刪除了在下載就行了,懷疑是不是緩存的問題

3- 节点执行kubectl抛出找不到localhost:8080的错误解决方法

解决:
主节点的admin.conf拷贝到从节点,设置环境变量,可以参考这个文章
# 解决The connection to the server localhost:8080 was refused - did you specify the right host or port?

参考链接

二进制安装k8s集群

CentOS7下快速搭建K8s集群实践(这个版本太老了,可以参考下,作者的思路还是可以借鉴的,我执行后没有安装成功= =||)

VMware安装最新版CentOS7图文教程

vmware workstation 百度云链接 下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木子林_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值