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 百度云链接 下载

### 使用云服务器部署 Kubernetes (K8s) 集群教程 #### 准备环境 为了在云服务器上成功搭建 Kubernetes 集群,需准备若干台虚拟机作为主节点和工作节点。每台机器应具备至少2核CPU、4GB内存以及CentOS 7操作系统[^4]。 #### 安装 kubeadm 和其他必要组件 通过 `kubeadm` 可以简化 Kubernetes 的安装过程。此工具提供了命令行接口来初始化集群并加入新节点到现有集群中[^2]。具体操作如下: 1. 更新系统软件源; 2. 下载并安装 Docker 或者容器运行时; 3. 添加 Kubernetes 软件仓库; 4. 安装 kubelet、kubeadm 和 kubectl; ```bash sudo apt-get update && sudo apt-get upgrade -y curl -fsSL https://get.docker.com | sh cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gp... https://packages.cloud.google.com/yum/doc/rpm-package-key.gp... EOF yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes ``` #### 初始化 Master Node 完成上述准备工作之后,在选定为主节点的一台主机执行以下指令启动集群初始化流程: ```bash sudo swapoff -a # 关闭swap分区 sudo systemctl enable kubelet.service sudo kubeadm init --pod-network-cidr=10.244.0.0/16 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://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` 这一步骤会创建一个新的单节点控制平面实例,并返回一段用于后续添加 worker nodes 到该集群的信息字符串。 #### 加入 Worker Nodes 至 Cluster 对于每一个计划成为工作节点的远程服务器而言,则只需在其本地终端输入由 master node 提供的那一串 token 字符串即可自动连接至中心化的 K8S 环境内。通常形式如下所示(请注意替换实际获得的令牌值): ```bash sudo kubeadm join <master-ip>:<master-port> --token <token-string> ``` #### Cloud Controller Manager 整合 当涉及到云端资源管理时,cloud-controller-manager 组件允许 Kubernetes 更好地适配不同类型的 IaaS 平台特性,比如 AWS EC2 实例标签同步或是 GCE LoadBalancer 插件支持等功能实现都依赖于此服务进程的存在[^1]。 #### Helm 应用程序发布 最后可以考虑引入Helm 来帮助管理和分发复杂应用模板文件集合作为 release 版本存在整个生命周期内的变更记录跟踪机制[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

木子林_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值