作者:暴食海獭
完成日期: 2024-9-14
目录
4.部署k8s官方图形化平台Dashboard(在master节点执行)
前言:
k8s默认最小化安装至少使用三台节点,因此在文章中如果没有出现单独对master节点进行配置的说明时默认对三台节点都需要执行
1.环境准备
购买三台华为云ECS云服务器
规格为:2核CPU、 4G内存、 40G硬盘
操作系统:CentOS 7.6
k8s-master:192.168.0.10
k8s-node1: 192.168.0.11
k8s-node2: 192.168.0.12
2.初始化配置
2.1基本配置
#配置三台节点的主机名
hostnamectl set-hostname k8s-master
hostnamectl set-hostname k8s-node1
hostnamectl set-hostname k8s-node2
#修改hosts文件
vim /etc/hosts
#在下方插入
192.168.0.10 k8s-master
192.168.0.11 k8s-node1
192.168.0.12 k8s-node2
#关闭seliux与防火墙
setenforce 0 #临时
sed -i 's/enforing/disabled/' /etc/selinux/config #永久
systemctl stop firewalld && systemctl disable firewalld #关闭防火墙设置开机不自启
#关闭swap
swapoff -a #临时
vim /etc/fstab
#删除swap挂载一行 #永久
#配置时间同步
yum install -y chrony && chrony sources
systemctl start chronyd && systemctl enable chronyd --now
2.2安装docker-ce
# 从华为镜像站拉取docker-ce镜像源
# 替换下载的镜像源将download.docker.com 替换为repo.huaweicloud.com
# 更新包的元数据并下载docker-ce
wget -O /etc/yum.repos.d/docker-ce.repohttps://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's+download.docker.com+repo.huaweicloud.com/docker-ce+'
yum makecache fast && yum install -y docker-ce
#查看docker版本
docker version
#配置华为镜像加速器设置容器运行时使用Cgroup驱动cat >> /etc/docker/daemon.json<<EOF
{
"registry-mirrors":["https://3146a7e5d01e422da13bb564af9f150f.mirror.swr.myhuaweicloud.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
#启动docker并设置开机自启
systemctl start docker && systemctl enable docker
3.安装Kubernetes
3.1前置环境配置
#配置K8S网络参数
cat >> sysctl.d/k8s.conf<<EOF
net.bridge.bridge-nf-call-ip6tables = 1 #允许IPv6数据包通过ip6tables规则进行过滤和处理
net.bridge.bridge-nf-call-iptables = 1 #允许IPv4数据包通过iptables规则进行过滤和处理
EOF
sysctl --system #将设置的内核参数应用到所有网络接口和进程
#安装ipvs模块实现负载均衡
yum install -y ipset ipvsadm
#加载ipvs模块
cat > /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe -- br_netfilter
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -E "ip vs|nf conntrack_ ipv4"
#从网页获取cri-dockerd RPM包
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.2/cri-dockerd-0.3.2-3.el7.x86_64.rpm
#修改cri-dockerd依赖镜像地址
https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.2/cri-dockerd-0.3.2-3.el7.x86_64.rpmvim /usr/lib/systemd/system/cri-docker.service
#将依赖镜像地址修改为
--pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9
systemctl daemon-reload #重载配置
#从阿里云镜像站拉取K8S的yum源
cat
[kubernetes]
name=Kubernetes
baseurl=kubernetes-new-core-stable-v1.28-rpm安装包下载_开源镜像站-阿里云
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/rpm/repodata/repomd.xml.key
EOF
#安装kubeadm、kubelet、与kebectl
yum install -y kubelet-1.28.0 kubeadm-1.28.0 kubectl-1.28.0
systemctl enable kubelet #设置kubelet开机自启
3.2初始化Matser节点(仅在master节点执行)
#生成Kubernetes集群初始化配置文件
kubeadm config print init-defaults --component-configs KubeletConfiguration --component-configs KubeProxyConfiguration > kubeadm.yaml
#修改 12、15、17、30、129行参数
#拉取k8s所需镜像
kubeadm config images pull --config kubeadm.yaml
#初始化master节点
kubeadm init --config kubeadm.yaml
#根据上图添加环境变量
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
#查看集群中的节点
kubectl get node
3.3将Node节点加入k8s集群
#在node1和node2节点上执行以下命令将节点加入集群
#再次查看集群中的节点
#安装网络插件calico
kubectl apply -f https://docs.projectcalico.org/archive/v3.20/manifests/calico.yaml
#再次查看集群中的节点
4.部署k8s官方图形化平台Dashboard(在master节点执行)
4.1安装K8S Dashboard
#拉取Dashboard配置文件
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml
#修改recommended.yaml文件
修改service类型为NodePort设置节点端口为30000
kubectl apply -f recommended.yaml
kubectl get pods -n kubernetes-dashboard.yaml
使用master节点IP:30000访问网页
#由于部署 Kubernetes Dashboard 时默认生成的证书有问题,使用其他浏览器时很可能会出现无法访问的情况,所以建议使用火狐浏览器进行访问
4.2获取Token
kubectl create serviceaccount admin -n kubernetes-dashboard #创建用户
kubectl create clusterrolebinding admin --clusterrole=cluster-admin #用户授权 serviceaccount=kubernetes-dashboard:admin
kubectl create token admin -n kubernetes-dashboard #获取token
#使用获取的Token登陆DashBoard
结尾:本文至此结束,作者是k8s小白一枚,本文主要是作为作者的一个学习记录,作者第一次发布此类文章,如有建议或者意见欢迎评论!