K8S 1.10.1版本部署

K8S 1.10.1版本部署

准备好几台机器,最好准备至少2台机器
我这里准备了3台机器,一台做master,2台做node
1.机器基本设置
1.1 设置主机名

hostnamectl set-hostname master  #在master机器上执行
hostnamectl set-hostname node1   #在node1机器上执行
hostnamectl set-hostname node2   #在node2机器上执行

1.2 设置三台机器时区,保证后续事件准确,如果每台机器的时间不一样,后续出现很多莫名其妙的问题

timedatectl set-timezone Asia/Shanghai   #在三台上都执行

1.3 添加主机至hosts文件

vim /etc/hosts  #三台机器都执行
#在打开的文件添加三行内容,内容为机器ip+名称,本文直接以master+node命名,实际可按照需求更改
#192.168.1.181 matser
#192.168.1.182 node1
#192.168.1.183 node2

1.4 关闭swap分区,很重要,swap分区不关闭,会直接导致部署失败,三台全部需要执行

swapoff -a  
vim /etc/fstab  #将swap所在行注释掉

1.5 修改iptables信息

 echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
 echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables

关闭所有节点的seliux以及firewalld

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0 
systemctl disable firewalld
systemctl stop firewalld

2.安装docker
因为本次要部署的K8S版本为1.10.1版本,版本较低,所以docker版本不要安装太高的版本(亲测19.03版本不兼容)

yum install docker -y
systemctl start docker && systemctl enable docker

默认安装的是1.13版本(目前最新版本是1.13版本),不要安装docker-ce,docker-ce会安装19.03版本(截止目前的最新版本)
查看docker cgroup

docker info

1.10.1版本的K8S使用的是cgroup driver,1.14之后的版本才推荐使用systemd,docker与K8S两者必须要保持一致,否则会报错
在这里插入图片描述
如果查看到的cgroup不为cgroupfs,需要修改

vim /usr/lib/systemd/system/docker.service

在这里插入图片描述
修改完成后重载配置,重启docker

systemctl daemon-reload && systemctl restart docker

3.安装kubeadm,kubectl,kubelet
3.1 下载必要离线包,因为不下载的话,后面在初始化kubeadm时,会去自动拉去必要镜像,有些镜像需要翻墙才能下得下来

链接:https://pan.baidu.com/s/1tPGxcqUkepbGnVV934bOpQ
提取码:r0cz
复制这段内容后打开百度网盘手机App,操作更方便哦

3.2 安装,此步骤三天机器全部都需要执行
注:本文将所有K8S的文件放置在/home/k8s目录下,以下代码在使用时记得修改为实际路径

cd /home/k8s/kubernetes-1.10
tar -xvf kube-packages-1.10.1.tar
cd kube-packages-1.10.1
rpm -Uvh * --force --nodeps

在所有kubernetes节点上设置kubelet使用cgroupfs,与dockerd保持一致,否则kubelet会启动报错
默认kubelet使用的cgroup-driver=systemd

sed -i "s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g" /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

systemctl daemon-reload && systemctl restart kubelet

3.3 导入镜像,只导入了必要镜像,后续镜像很多的话,可以考虑搭建harbor存放镜像,此步骤三天机器全部都需要执行

docker load -i k8s-images-1.10.tar.gz

3.4 初始化master节点,此步骤只需要在master机器上执行

kubeadm init --kubernetes-version=v1.10.1 --pod-network-cidr=10.244.0.0/16
#初始化需要执行部署的版本,和ip段

初始化成功之后,记得记录一下join的加入命令,在node节点上执行该命令即可将node机器添加到master节点中
在这里插入图片描述
3.5 执行初始后成功后的提示命令

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

3.6 查看当前部署情况

kubectl get node

可以看到此时只有一个master节点,且状态为notready状态
在这里插入图片描述
这是因为还未部署网络插件,K8S可以采用多种网络方式,例如flannel,calico,openvswitch
本文采用flannel网络
3.7 部署flannel

cd /home/k8s/kubernetes-1.10
kubectl apply -f kube-flannel.yml  #配置文件可修改,本文直接使用默认配置

配置完成后等待一会儿,再次查看node状态

kubectl get node

可以看到状态变成正常
在这里插入图片描述
3.8 将node节点加入到master机器
直接复制master节点初始化后的命令(无需任何修改,直接复制执行),即可将node节点加入到master机器中
加入之后一会儿,可以看到2台node机器
在这里插入图片描述
4.到此步,集群部署完成

5.dashboard部署
直接使用离线包中的三个.yaml文件即可完成部署

cd /home/k8s/kubernetes-1.10
kubectl apply -f kubernetes-dashboard-http.yaml -f admin-role.yaml -f kubernetes-dashboard-admin.rbac.yaml

完成后查看主机是否起了31000端口,如果已启动,可通过ip:31000打开 K8S可视化页面

6.master节点初始化失败,需要清理重新部署

#重置kubernetes服务,重置网络,删除网络配置
kubeadm reset
systemctl stop kubelet 
systemctl stop docker 
rm -rf /var/lib/cni/
rm -rf /var/lib/kubelet/* rm -rf /etc/cni/ ifconfig cni0 down ifconfig flannel.1 down ifconfig docker0 down ip link delete cni0 ip link delete flannel.1 systemctl start docker 

tab快捷键安装

yum -y  install bash-completion && source /usr/share/bash-completion/bash_completion && source <(kubectl completion bash) && echo "source <(kubectl completion bash)" >> ~/.bashrc
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101899.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 渗透测试笔记大全_黑客秘笈-渗透测试实用指南

    渗透测试笔记大全_黑客秘笈-渗透测试实用指南【拿shell】1.直接上传aspasajspcerphpaspxhtrcdx格式的木马,不行就利用IIS6.0解析漏洞”:1.asp;1.jpg/1.asp;.jpg/1.asp;jpg/1.asp;.xls2.上传图片木马遇到拦截系统,连图片木马都上传不了,记事本打开图片木马在代码最前面加上gif89a,一般就能逃过拦截系统了。3.上传图片木马把地址复制到数据库备份里备份成…

    2022年9月21日
    0
  • 1M 等于多少字节

    1M 等于多少字节1M=1024k=1048576字节算法是:8bit(位)=1Byte(字节)1024Byte(字节)=1KB1024KB=1MB1024MB=1GB1024GB=1TB一个汉字要占用2个字节如果换算成中文汉字那么就是1M=524288个汉字

    2022年5月9日
    89
  • pycharm界面改为中文,中英文切换「建议收藏」

    pycharm界面改为中文,中英文切换「建议收藏」打开pycharm,选择“plugins”(插件)。在plugins市场的搜索框,输入“chinese”选择第二个插件,点击插件后面的安装按钮“install”,会自己安装,安装好后,软件会要求重新启动,点击确定即可。重启后就可以显示为中文界面了。如果不想用中文,想改回去也很容易。选择“plugins”,然后在右侧的窗口,选择“已安装”,可以看到所有安装的插件,将安装的中文插件的右侧的勾选框点掉,然后点击其他处,软件会提示重启,点击确定即可。…

    2022年8月27日
    4
  • Java 控制台输入,输出语句

    Java 控制台输入,输出语句输入:Scannerscan=newScanner(System.in);Stringread=scan.nextLine();System.out.println(read);输出:System.out.println(“普通信息”);System.err.println(“错误信息”);

    2022年7月8日
    22
  • OCX制作CAB,数字签名制作

    OCX制作CAB,数字签名制作从网上找了些相关的资料,最终制作成功,做个小的总结:首先准备好必须的工具如下:制作工具:iexpress.exe和makecab.exe,签名工具:cert2spc.exe,makecert.exe,signcode.exe下面我具体说如何使用他们来帮助我们制作需要的cab包。下面是我引用网上的资料信息.1.将ocx文件以及第三方dll文件打包成…

    2022年7月14日
    19
  • 51单片机通过WIFI模块ESP8266控制LED灯

    51单片机通过WIFI模块ESP8266控制LED灯一 系统方案手机 APP 通过 ESP8266WIFI 模块与 51 单片机通信控制 LED 灯的开关 下位机由单片机 ESP8266 模块和 LED 灯组成 上位机由 Android 手机 APP 承担 我们在 APP 上发送 LED 灯的开关控制指令 ESP8266 将收到的数据发送给单片机 从而实现对 LED 灯进行开关控制 设计好的实物是这个样子 二 硬件设计 ESP8266 模块作为一个透传模块使用 RXD

    2025年7月11日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号