栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

k8s安装

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

k8s安装

k8s安装流程
    • 准备环境
    • linux环境设置
    • 主节点安装
    • 子节点安装
    • 主节点安装网络插件
    • 主节点安装dashboard

准备环境

1.硬件要求:2核CPU 以上 2G内存以上 硬盘默认20G便可

2.准备3台虚拟机,我们这里使用VmWare软件来虚拟3台机器

3.机器需要能访问外网

4.3台机器已经安装好docker,可根据文章docker安装进行操作。

这里我以10.85.69 网段为例,你可以根据你的网络情况改成自己的IP地址

角色IP
master10.85.69.100
node110.85.69.101
node210.85.69.102
linux环境设置

3台机器都要执行以下命令

#禁用防火墙
systemctl stop firewalld
#开机启动禁用防火墙
systemctl disable firewalld

#关闭selinux(关闭linux默认的安全策略,不关闭会修改/etc/selinux/config的内容)
sed -i 's/enforcing/disabled/' /etc/selinux/config 
#把当前会话的默认安全策略也禁掉(或者重启虚拟机应该也可,我是这样理解的)
setenforce 0

#关闭swap(关闭内存交换)(开启内存交换的话,性能会出现很大的问题)
#临时的,只针对当前会话起作用,若会话关闭,重开还是会开启内存交换,所以使用下面一行命令即可
swapoff -a
#永久关闭
sed -ri 's/.*swap.*/#&/' /etc/fstab		
# free -g 验证,swap必须为0;

#添加主机名与IP对应关系(注意:主机名一定不能是localhost,如果是,使用下面命令修改主机名)
vi /etc/hosts
10.85.69.100 master
10.85.69.101 node1
10.85.69.102 node2

#查看主机名命令
hostname
#修改主机名命令
sudo hostnamectl set-hostname 

#将桥接的IPv4流量传递到iptables的链
#(如果不执行可能会有些流量统计指标的消失,为了让更精确的统计流量,所以执行此命令)
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables 
# 让系统应用此规则
sysctl --system

# 配置安装源
cat < /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
EOF

#执行该命令
yum check-update
主节点安装
#指定版本安装
yum install -y kubelet-1.20.6 kubeadm-1.20.6 kubectl-1.20.6
#设置kubelet开机自启动,并且启动kubelet
systemctl enable kubelet && systemctl start kubelet

#分别是kubernetes版本,apiserver的地址,需要设置为主节点ip,阿里云镜像仓库,service网络,pod网络
#pod网络建议使用10.244.0.0,因为后续安装flannel默认的网段是10.244.0.0
kubeadm init 
--kubernetes-version v1.20.6 
--apiserver-advertise-address=10.85.69.100 
--image-repository registry.aliyuncs.com/google_containers 
--service-cidr=10.96.0.0/16 
--pod-network-cidr=10.244.0.0/16

#kubeadm安装成功后执行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

#保存kubeadm join 命令,这是子节点加入集群的关键
子节点安装
#不需要安装kubectl
yum install -y kubelet-1.20.6 kubeadm-1.20.6
#设置kubelet开机自启动,并且启动kubelet
systemctl enable kubelet && systemctl start kubelet
#将保存的kubeadm join命令粘贴执行,将子节点加入到集群中
kubeadm join xxx
主节点安装网络插件

根据命令 kubectl get nodes 查看节点信息

根据命令 kubectl describe node master 查看节点详情,可以看到node状态为NotReady的原因为未安装网络插件

# 创建yml文件的存放目录
mkdir -p /app/kube/yam && cd /app/kube/yam
#获取flannel的yml文件
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
#安装flannel插件
kubectl apply -f kube-flannel.yml

若存在先安装calico网络插件不成功,再删除 换成 flannel 插件,pod没有正常启动的情况,则删除掉 /etc/cni/net.d/ 目录下的 calico 配置文件即可,再查看pod应该就能正常启动。

主节点安装dashboard
--安装dashbord
#下载yml文件
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml
#仿照下方图片进行编辑
vim recommended.yaml
#运行yml文件创建dashboard
kubectl apply -f recommended.yaml
kubectl get pods -n kubernetes-dashboard

# 此处主要是增加dashboard角色权限,原始的权限太小

# 创建dashboard-admin.yaml文件
vim dashboard-admin.yaml

#dashboard-admin.yaml内容为
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: dashboard-admin
  namespace: kubernetes-dashboard

#华丽的分隔符************************************************
#执行创建管理员
kubectl applay-f dashboard-admin.yaml

# 创建dashboard-admin-bind-cluster-role.yaml文件
vim dashboard-admin-bind-cluster-role.yaml

#dashboard-admin-bind-cluster-role.yml内容为
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: dashboard-admin-bind-cluster-role
  labels:
    k8s-app: kubernetes-dashboard
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: dashboard-admin
  namespace: kubernetes-dashboard

#华丽的分隔符************************************************
#执行分配权限
kubectl create -f dashboard-admin-bind-cluster-role.yaml

#查看并复制用户Token
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep dashboard-admin | awk '{print $1}')

网页请求https://nodeIp:30000/,输入复制的 token 信息,即可登录dashboard.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/887426.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号