(第三篇) ansible-kubeadm在线安装高可以用集群()

ansible可以安装的KS8版本如下:

请按照此博客中的内容操作后,才可以通过下面的命令查询到版本。

[root@k8s-master01 ~]# yum list kubectl --showduplicates | sort -r 
kubectl.x86_64                       1.20.0-0                        kubernetes 
kubectl.x86_64                       1.20.0-0                        @kubernetes
kubectl.x86_64                       1.19.9-0                        kubernetes 
kubectl.x86_64                       1.19.8-0                        kubernetes 
kubectl.x86_64                       1.19.7-0                        kubernetes 
kubectl.x86_64                       1.19.6-0                        kubernetes 
kubectl.x86_64                       1.19.5-0                        kubernetes 
kubectl.x86_64                       1.19.4-0                        kubernetes 
kubectl.x86_64                       1.19.3-0                        kubernetes 
kubectl.x86_64                       1.19.2-0                        kubernetes 
kubectl.x86_64                       1.19.16-0                       kubernetes 
kubectl.x86_64                       1.19.15-0                       kubernetes 
kubectl.x86_64                       1.19.14-0                       kubernetes 
kubectl.x86_64                       1.19.13-0                       kubernetes 
kubectl.x86_64                       1.19.12-0                       kubernetes 
kubectl.x86_64                       1.19.11-0                       kubernetes 
kubectl.x86_64                       1.19.1-0                        kubernetes 
kubectl.x86_64                       1.19.10-0                       kubernetes 
kubectl.x86_64                       1.19.0-0                        kubernetes 
[root@k8s-master01 ~]# 

条件情况说明

准备4台机器,是单master集群安装

192.168.186.128 k8s-master01
192.168.186.129 k8s-master02
192.168.186.130 k8s-master03
192.168.186.131 k8s-node01
192.168.186.132 ansible

#永久修改主机名
hostnamectl set-hostname k8s-master01  && bash   #在master01上操作
hostnamectl set-hostname k8s-master02   && bash   #在master02上操作
hostnamectl set-hostname k8s-master03   && bash   #在master03上操作
hostnamectl set-hostname k8s-node01    && bash   #在node01上操作
hostnamectl set-hostname ansible       && bash   #在ansible上操作

1. ansible机器与部署k8s集群都做免密钥

cat >> /etc/hosts << EOF
192.168.186.128    k8s-master01
192.168.186.129    k8s-master02
192.168.186.130    k8s-master03
192.168.186.131    k8s-node01
192.168.186.132    ansible   
EOF
#所有机器上都操作
ssh-keygen -t rsa #一路回车,不输入密码
###把本地的ssh公钥文件安装到远程主机对应的账户
for i in k8s-master01 k8s-master02 k8s-master03 k8s-node01 ansible;do ssh-copy-id -i .ssh/id_rsa.pub $i ;done

2. ansible安装

#Ansible服务器安装
yum install epel-release git -y
yum install ansible -y
# 克隆部署k8s集群文件 
yum -y install git 
git clone https://gitee.com/qq759035366/ansible-kubeadm-install.git
#ansible机器上操作
cd ansible-kubeadm-install/
cat > hosts << EOF
[master]
# 如果部署单Master或多master的主master配置[masternode]
# 用于存储集群部署多节点master,单独存放一个组,对部署编写方便
192.168.186.128    node_name=k8s-master01
192.168.186.129    node_name=k8s-master02
192.168.186.130    node_name=k8s-master03[node]
192.168.186.131   node_name=k8s-node01[etcd]
192.168.186.128  etcd_name=etcd-1
192.168.186.129  etcd_name=etcd-2
192.168.186.130  etcd_name=etcd-3[lb]
# 如果部署单Master,该项忽略
192.168.186.128    node_name=k8s-master01
192.168.186.129    node_name=k8s-master02[k8s:children]
master
masternode
node[newnode]
192.168.0.187   ansible_ssh_port=22  node_name=k8s-node02EOF
#ansible机器上操作
cat > group_vars/all.yml << EOF
#  安装目录
etcd_work_dir: '/etc/etcd'  
tmp_dir: '/tmp/k8s'# k8s执行配置临时目录
tmp_kubernetes_dir: '/root/kubernetes'# 集群网络
service_cidr: '10.96.0.0/12'
pod_cidr: '10.244.0.0/16' # 与roles/addons/files/calico.yaml中网段一致# 集群版本
k8s_version: 1.20.0   # 版本测试安装了,v1.19.0-v1.20.0版本,按照需要版本修改# 高可用,如果部署单Master,该项忽略
vip: '192.168.186.188'
nic: 'ens33'  # **注意这里一定要修改,修改为实际内网网卡名# 自签证书可信任IP列表,为方便扩展,可添加多个预留IP
cert_hosts:# 包含所有etcd节点IPetcd:- 192.168.186.128- 192.168.186.129- 192.168.186.130   
EOF

ansible-kubeadm-install/group_vars/all.yml #网卡默认是eth0,一定要修改这个网卡

ansible-kubeadm-install/roles/SingleMaster/tasks/main.yml #网卡默认是eth0,如果你做了修改一定要修改这个下面的网卡 替换方式参考博客

3. 高可用K8S集群v1.20.0安装

#K8S集群v1.20.0安装
cd /root/ansible-kubeadm-install
ansible-playbook -i hosts -uroot multi-master-deploy.yml

注意:这里只需要等待就行,大概需要30多分钟就安装好了

4. 检查安装情况

kubectl get nodes
kubectl get pods -n kube-system
[root@k8s-master01 ~]# kubectl get nodes
NAME           STATUS   ROLES                  AGE     VERSION
k8s-master01   Ready    control-plane,master   35m     v1.20.0
k8s-node01     Ready    <none>                 3m40s   v1.20.0
k8s-node02     Ready    <none>                 34m     v1.20.0
[root@k8s-master01 ~]# 

5. dashboard检查

kubectl get pods,svc  -n kubernetes-dashboard #查看dashboard对外端口
[root@k8s-master01 ~]# kubectl get pods,svc  -n kubernetes-dashboard #查看dashboard对外端口
NAME                                             READY   STATUS    RESTARTS   AGE
pod/dashboard-metrics-scraper-7b59f7d4df-z9m6m   1/1     Running   1          35m
pod/kubernetes-dashboard-5dbf55bd9d-m6vfr        1/1     Running   1          35mNAME                                TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
service/dashboard-metrics-scraper   ClusterIP   10.108.128.243   <none>        8000/TCP        35m
service/kubernetes-dashboard        NodePort    10.104.187.42    <none>        443:30001/TCP   35m
[root@k8s-master01 ~]# 
#获取用户Token
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')#使用输出的token登录Dashboard
#访问地址:https://IP:30001/ #注意必须是https://

6. 测试kubernetes 集群

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc
[root@k8s-master01 ~]# kubectl get pod,svc 
NAME                         READY   STATUS    RESTARTS   AGE
pod/nginx-6799fc88d8-qnf95   1/1     Running   1          3h12mNAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
service/kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        3h57m
service/nginx        NodePort    10.104.134.62   <none>        80:32216/TCP   3h12m
[root@k8s-master01 ~]# 

浏览器访问 IP:32216

7. 节点扩容

修改hosts文件,添加新节点IP

# vi hosts
...
[newnode]
192.168.0.187   ansible_ssh_port=22  node_name=k8s-node03
#执行安装添加k8s集群node节点
ansible-playbook -i hosts -uroot add-node.yml # 如果安装某个阶段失败,可针对性测试.例如:只运行部署插件
# ansible-playbook -i hosts -uroot single-master-deploy.yml  --tags common

所有HTTPS证书存放路径 部署产生的证书都会存放到目录“/tmp/k8s/ssl”,一定要保存好,后面还会用到~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/84411.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker的服务/容器缺少vim问题

背景/问题&#xff1a; docker的服务/容器缺少vim问题 在docker的mysql服务中安装Vim 1、执行apt-get update root6d8d17e320a0:/# apt-get update问题:文件下载失败 Err:1 http://security.debian.org/debian-security buster/updates InRelease Temporary failure resolv…

Hugging Face 的文本生成和大语言模型的开源生态

[更新于 2023 年 7 月 23 日: 添加 Llama 2。] 文本生成和对话技术已经出现多年了。早期的挑战在于通过设置参数和分辨偏差&#xff0c;同时控制好文本忠实性和多样性。更忠实的输出一般更缺少创造性&#xff0c;并且和原始训练数据更加接近&#xff0c;也更不像人话。最近的研…

python函数的传参

一、关键字参数 定义一个接受关键字参数的函数 def test_arg(**kargs):for key in kargs:print(f{key}{kargs[key]}) 这里的kargs是一个字典&#xff0c;但传入的参数是 **kargs, 而非 kargs. 可以试试&#xff1a; test_arg(A30,B"Chinese") 但你直接传入一个字…

Kali Hyper-V安装正常启动后 黑屏 只能进命令模式

问题: Hyper-V安装虚拟机Kali系统一切安装正常, 没有出现错误. 安装成功后重启,只能进入命令模式,tt1-tt6,进不去GUI桌面. 尝试: 一代二代虚拟硬盘都试过,同样问题,只能开进后进入命令模式,在命令模式下一切运行正常, 也修复过系统 GNOM等的,不管用. 以下为国外论坛给的建议,尝…

Cocos Creator 3.8 后期效果 Shader 编写(2/2) 进阶篇

前言 在上一篇文章中&#xff0c;麒麟子给大家分享了如何在 Cocos Creator 3.8 中的自定义管线中&#xff0c;添加属于自己的后期效果 Shader。 但基于 BlitScreen 的方案&#xff0c;我们只能编写最简单后效 Shader&#xff0c;如果我们想要支持更多复杂的 Shader&#xff0c…

Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器

如果要参考gitlab配置请参考GitlabWebhook自动推送并更新Springboot项目 Gitlab的配置部分 环境介绍 Jenkins服务器(Centos7.6): docker安装的jenkins,参考Jenkins(docker安装)部署Springboot项目JDK1.8Maven3.6.3 注意docker安装的jenkins,而且是较新的版本,所以jenkins容器…

Tomcat的介绍和安装配置、eclipse中动态web项目的创建和运行、使用IDEA创建web项目并运行

一、Tomcat的介绍和安装配置 安装tomcat&#xff1a; 环境变量的配置&#xff1a; 配置之后重启cmd&#xff0c;执行startup命令&#xff0c;启动tomcat 在localhost:8080&#xff0c;能进入tomcat主界面&#xff0c;说明配置成功 二、eclipse中动态web项目的创建和运行 tomca…

竞赛项目 深度学习疲劳驾驶检测 opencv python

文章目录 0 前言1 课题背景2 实现目标3 当前市面上疲劳驾驶检测的方法4 相关数据集5 基于头部姿态的驾驶疲劳检测5.1 如何确定疲劳状态5.2 算法步骤5.3 打瞌睡判断 6 基于CNN与SVM的疲劳检测方法6.1 网络结构6.2 疲劳图像分类训练6.3 训练结果 7 最后 0 前言 &#x1f525; 优…

06微服务间的通信方式

一句话导读 微服务设计的一个挑战就是服务间的通信问题&#xff0c;服务间通信理论上可以归结为进程间通信&#xff0c;进程可以是同一个机器上的&#xff0c;也可以是不同机器的。服务可以使用同步请求响应机制通信&#xff0c;也可以使用异步的基于消息中间件间的通信机制。同…

Ansible的安装和配置

安装和配置 Ansible 安装所需的软件包 创建名为 /home/greg/ansible/inventory 的静态清单文件&#xff0c;以满足以下要求&#xff1a; 172.25.250.9 是 dev 主机组的成员 172.25.250.10 是 test 主机组的成员 172.25.250.11 和 172.25.250.12 是 prod 主机组的成员 172.2…

halo --- 上传图片服务器错误

文章目录 问题定位过程1、查看日志 报错的是数据库操作异常2、再次上传一张小一点的图片3、检查nginx的配置文件 原因解决 问题 上传图片时&#xff0c;报错服务器错误&#xff08;包括上传附件、博客文章插入图片、上传相册&#xff09; 定位过程 1、查看日志 报错的是数据库…

Element组件浅尝辄止4:Button组件

Button按钮组件&#xff1a;用途太广泛了&#xff0c;几乎参与到了日常开发中的方方面面 1.如何使用&#xff1f;How? //使用type、plain、round和circle属性来定义 Button 的样式。<el-row><el-button>默认按钮</el-button><el-button type"primar…

企业微信 企业内部开发 学习笔记

官方文档 文档 术语介绍 引入pom <dependency><groupId>com.github.binarywang</groupId><artifactId>wx-java-cp-spring-boot-starter</artifactId><version>4.5.3.B</version></dependency>核心代码 推送消息 final WxCp…

【Spring专题】Spring底层核心原理解析

目录 前言阅读导航前置知识Q1&#xff1a;你能描述一下JVM对象创建过程吗&#xff1f;Q2&#xff1a;Spring的特性是什么&#xff1f;前置知识总结 课程内容一、Spring容器的启动二、一般流程推测2.1 扫描2.2 IOC2.3 AOP 2.4 小结三、【扫描】过程简单推测四、【IOC】过程简单推…

分布式 - 消息队列Kafka:Kafka生产者架构和配置参数

文章目录 1. kafka 生产者发送消息整体架构2. Kafka 生产者重要参数配置01. acks02. 消息传递时间03. linger.ms04. buffer.memory05. batch.size06. max.in.flight.requests.per.connection07. compression.type08. max.request.size09. receive.buffer.bytes和 send.buffer.b…

uniapp 微信小程序 封装公共的请求js(api版本)

一、新建api文件夹 在项目目录下创建api文件夹&#xff0c;内放files跟index.js文件夹&#xff0c;files文件夹内放每个页面对应的js请求接口 1、index.js /*** api接口的统一出口*/ const api {}; const requireComponent require.context(./files, false, /\.js$/) requi…

ssm亚盛汽车配件销售业绩管理统源码和论文PPT

ssm亚盛汽车配件销售业绩管理统源码和论文PPT007 开发工具&#xff1a;idea 数据库mysql5.7(mysql5.7最佳) 数据库链接工具&#xff1a;navcat,小海豚等 开发技术&#xff1a;java ssm tomcat8.5 研究的意义 汽车配件销售类企业近年来得到长足发展,在市场份额不断扩大同时…

『PostgreSQL』在 PostgreSQL中创建只读权限和读写权限的账号

&#x1f4e3;读完这篇文章里你能收获到 理解在 PostgreSQL 数据库中创建账号的重要性以及如何进行账号管理掌握在 PostgreSQL 中创建具有只读权限和读写权限的账号的步骤和方法学会使用 SQL 命令来创建账号、为账号分配适当的权限以及控制账号对数据库的访问级别了解如何确保…

HBase-写流程

写流程顺序正如API编写顺序&#xff0c;首先创建HBase的重量级连接 &#xff08;1&#xff09;读取本地缓存中的Meta表信息&#xff1b;&#xff08;第一次启动客户端为空&#xff09; &#xff08;2&#xff09;向ZK发起读取Meta表所在位置的请求&#xff1b; &#xff08;…

MySQL 建表 及其 表的约束类型

目录 步骤&#xff1a; 1、选择数据库(mydb--自定义数据库) 2、建立班级表 3、建立学生表 4、增加约束删除约束 增添约束&#xff1a; 删除约束&#xff1a; 以班级表和学生表为例说明表的约束类型 步骤&#xff1a; 1、选择数据库(mydb--自定义数据库) 2、建立班级表 …