我这里用到了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 < /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所需的工具
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镜像加速
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
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 百度云链接 下载