(第一篇) ansible-kubeadm在线安装单masterk8s v1.19-v1.20版本

news/2024/2/20 22:44:10

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-node01
192.168.186.130 k8s-node02
192.168.186.131 ansible

#永久修改主机名
hostnamectl set-hostname k8s-master01  && bash   #在master上操作
hostnamectl set-hostname k8s-node01    && bash   #在node1上操作
hostnamectl set-hostname k8s-node02    && bash   #在node2上操作
hostnamectl set-hostname ansible       && bash   #在ansible上操作

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

cat >> /etc/hosts << EOF
192.168.186.128    k8s-master01
192.168.186.129    k8s-node01
192.168.186.130    k8s-node02
192.168.186.131    ansible
EOF
#所有机器上都操作
ssh-keygen -t rsa #一路回车,不输入密码
###把本地的ssh公钥文件安装到远程主机对应的账户
for i in k8s-master01  k8s-node01 k8s-node02 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配置
192.168.186.128    node_name=k8s-master01[masternode]
# 用于存储集群部署多节点master,单独存放一个组,对部署编写方便
192.168.0.182    node_name=k8s-master02 [node]
192.168.186.129    node_name=k8s-node01
192.168.186.130    node_name=k8s-node02[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.0.185 node_name=lb-master
192.168.0.186 node_name=lb-backup[k8s:children]
master
masternode
node[newnode]
192.168.0.187   ansible_ssh_port=22  node_name=k8s-node03EOF
#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.0.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. 单master版本K8Sv1.20.0安装

#单master版本
cd /root/ansible-kubeadm-install
ansible-playbook -i hosts -uroot single-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   3h48m   v1.20.0
k8s-node01     Ready    <none>                 3h45m   v1.20.0
k8s-node02     Ready    <none>                 3h45m   v1.20.0
[root@k8s-master01 ~]# kubectl get pods -n kube-system
NAME                                       READY   STATUS    RESTARTS   AGE
calico-kube-controllers-7985fc4dd6-8t56s   1/1     Running   1          3h48m
calico-node-b4qvv                          1/1     Running   3          3h37m
calico-node-hp29x                          1/1     Running   1          3h48m
calico-node-rpjbf                          1/1     Running   8          3h37m
coredns-7f89b7bc75-69654                   1/1     Running   1          3h48m
coredns-7f89b7bc75-scf2l                   1/1     Running   1          3h48m
etcd-k8s-master01                          1/1     Running   2          3h48m
kube-apiserver-k8s-master01                1/1     Running   2          3h48m
kube-controller-manager-k8s-master01       1/1     Running   9          3h48m
kube-proxy-4wgdq                           1/1     Running   1          3h48m
kube-proxy-drsrh                           1/1     Running   1          3h37m
kube-proxy-t7kss                           1/1     Running   1          3h37m
kube-scheduler-k8s-master01                1/1     Running   9          3h48m
[root@k8s-master01 ~]# 

5. dashboard检查

kubectl get pods,svc  -n kubernetes-dashboard #查看dashboard对外端口
[root@k8s-master01 yml]# kubectl get pods,svc  -n kubernetes-dashboard
NAME                                             READY   STATUS    RESTARTS   AGE
pod/dashboard-metrics-scraper-7b59f7d4df-8q55k   1/1     Running   1          3h39m
pod/kubernetes-dashboard-5dbf55bd9d-qmd7r        1/1     Running   1          3h39mNAME                                TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
service/dashboard-metrics-scraper   ClusterIP   10.110.47.196   <none>        8000/TCP        3h45m
service/kubernetes-dashboard        NodePort    10.103.87.75    <none>        443:30001/TCP   3h45m
[root@k8s-master01 yml]# 
#获取用户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
[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.ppmy.cn/news/1017965.html

相关文章

2023-08-07力扣今日六题-不错题

链接&#xff1a; 剑指 Offer 04. 二维数组中的查找 题意&#xff1a; 一个二维矩阵数组&#xff0c;在行上非递减&#xff0c;列上也非递减 解&#xff1a; 虽然在行列上非递减&#xff0c;但是整体并不有序&#xff0c;第一行存在大于第二行的数字&#xff0c;第一列存在…

⌈算法进阶⌋图论::并查集——快速理解到熟练运用

目录 一、原理 1. 初始化Init 2. 查询 find 3. 合并 union 二、代码模板 三、练习 1、 990.等式方程的可满足性&#x1f7e2; 2、 1061. 按字典序排列最小的等效字符串&#x1f7e2; 3、721.账户合并 &#x1f7e1; 4、 839.相似字符串组&#x1f7e1; 5、 2812.找出最安全…

BC260模块_NB通讯_MQTT

闲来无事从角落里找出了一个BC260模块&#xff0c;玩了玩发现挺有趣的&#xff0c;于是将调试过程记录下来分享给需要的朋友们。 1.BC260模块 BC260模块是一款NB-loT无线通讯模块&#xff0c;模块插上物联网SIM卡后可以实现物联网无线通讯功能。 BC260模块是一款NB-loT无线通…

Java课题笔记~ 使用 AspectJ 的 AOP 配置管理事务(掌握)

使用 XML 配置事务代理的方式的不足是&#xff0c;每个目标类都需要配置事务代 理。当目标类较多&#xff0c;配置文件会变得非常臃肿。 使用 XML 配置顾问方式可以自动为每个符合切入点表达式的类生成事务代 理。其用法很简单&#xff0c;只需将前面代码中关于事务代理的配置…

ATF(TF-A)安全通告汇总

目录计划如下&#xff0c;相关内容补充中&#xff0c;待完成后进行超链接&#xff0c;敬请期待&#xff0c;欢迎您的关注 1、Advisory TFV-1 (CVE-2016-10319) 2、Advisory TFV-2 (CVE-2017-7564) 3、Advisory TFV-3 (CVE-2017-7563) 4、Advisory TFV-4 (CVE-2017-9607) 5、Ad…

1026 Table Tennis (PAT甲级)

终于完成了PAT甲级171道题&#xff01;可以说95%以上都是独立思考解出来的吧&#xff0c;还是挺开心的。 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 这道题折磨了我很久&#xff0c;最后测试点3还是过不了&#xff0c;后来网上搜了是晚上9点以后的客人不服务。 v代…

Linux Shell 编程入门

从程序员的角度来看&#xff0c; Shell本身是一种用C语言编写的程序&#xff0c;从用户的角度来看&#xff0c;Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行&#xff0c;又可以利用 Shell脚本编程&#xff0c;完成更加复杂的操作。在Linux GUI日益完善的今天…

设计模式---工厂模式

1.什么是设计模式 软件设计模式&#xff08;Design pattern&#xff09;&#xff0c;又称设计模式&#xff0c;是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。 …

【脚踢数据结构】链表(2)

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言,Linux基础,ARM开发板&#xff0c;软件配置等领域博主&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff01;送给自己和读者的一句鸡汤&#x1f914;&…

quill 富文本编辑器 @提及

使用插件quill-mention&#xff0c;实现在quill 富文本编辑器使用或#提及用户。 1. 安装 npm install quill-mention --save2. 官方给的示例quill-mention import "quill-mention";const atValues [{ id: 1, value: "Fredrik Sundqvist" },{ id: 2, va…

使用pkg打包node项目

用node做了一个小工具&#xff0c;希望能在别的没有node的环境使用&#xff0c;然后发现 pkg 可以做到打包node工程为exe文件&#xff0c;于是就尝试了一下&#xff0c;遇到很多坑&#xff0c;小记一下&#xff1a; 1.安装pkg npm install -g pkg 2.pkg打包基本用法&#xf…

Mysql面试题(查询重复数据删除重复数据)

Create table A (id int) 注意&#xff1a;id列非自增&#xff0c;由代码产生并输入&#xff0c;但代码可能产生重复id 1.业务定义中&#xff0c;id列不允许重复&#xff0c;用什么方式保证重复的id不会被输入表中&#xff1f; 2.若已经发生数据重复&#xff0c;请写出SQL语…

S3对象存储可视化管理工具客户端大全

Amazon S3 官网&#xff1a;https://s3browser.com/ Amazon S3是一款专门为Amazon S3推出的文件管理软件&#xff0c;它为用户提供了一个简单的Web服务界面&#xff0c;用户可以在这里随时管理Amazon S3上的数据&#xff0c;包括上传下载文件、发布内容和创建存储桶等等。 O…

motrix配合百度网盘的下载激活使用,需下载Motrix(官网)绝对安全

使用文档下载 需要下载神器motrix 有官网怕被和谐就不挂了放在上面文档里,也可baidu自行搜索 motrix下载 操作步骤 --> 简单易学↓↓↓↓ 网盘链接和提取码分开来填,操作见下图↓↓ 就是加速(点这儿解析链接) 点击后有时需要等待几秒钟 如果没…

xshell新建文件传输失败-使用sftp如何上传及下载数据

问题描述 我在使用xshell时&#xff0c;点击操作栏中的新建文件传输&#xff0c;报错为&#xff1a;要继续使用此程序&#xff0c;您必须应用最新的更新或使用新版本&#xff0c;然后就给我跳到了sftp界面&#xff0c;界面上显示的是当前目录&#xff0c;我要下载数据到本地。 …

拆解与重构:慕云游首页组件化设计

目录 前言1 项目准备1.1 创建项目目录1.2 搭建项目开发环境 2 项目组件化2.1 在当前环境启动原有项目2.2 顶部组件2.3 幻灯片组件2.3.1 功能实现2.3.2 加载中组件2.3.3 结构和样式2.3.4 使用Ajax获取数据 2.4 机酒自由行组件2.5 拆分余下的css文件 3 项目完善4 源码 前言 在现代…

nginx负载均衡(反向代理)

nginx负载均衡 负载均衡&#xff1a;由反向代理来实现。 nginx的七层代理和四层代理&#xff1a; 七层是最常用的反向代理方式&#xff0c;只能配置在nginx配置文件的http模块当中&#xff0c;而且配置方法名称&#xff1a;upstream模块&#xff0c;不能写在server模块中&#…

Python 装饰器 - 推导式(列表推导式) - 迭代器 - 生成器 - 闭包

目录 推导式 1、列表推导式&#xff08;用得最多的&#xff09; 给你一个列表&#xff0c;求所有数据的绝对值 列表推导式跟if运算 打印50以内能被3整除的数的平方&#xff08;filter&#xff09;&#xff08;if的使用&#xff09; 找到1000以内开平方的结果是整数的数&am…

2023河南萌新联赛第(五)场:郑州轻工业大学 --Kruskal

题目描述 给定一张nnn个点的无向完全图&#xff0c;其中两点之间的路径边权为两点编号的按位与&#xff08;编号为 (1,2,...,n)(1,2,...,n)(1,2,...,n)&#xff09;&#xff0c;即w(u,v)u&v(1≤u,v≤n)w\left(u, v \right )u\&v \left( 1 \le u, v \le n \right)w(u,v…

Apache DolphinScheduler 3.1.8 版本发布,修复 SeaTunnel 相关 Bug

近日&#xff0c;Apache DolphinScheduler 发布了 3.1.8 版本。此版本主要基于 3.1.7 版本进行了 bug 修复&#xff0c;共计修复 16 个 bug, 1 个 doc, 2 个 chore。 其中修复了以下几个较为重要的问题&#xff1a; 修复在构建 SeaTunnel 任务节点的参数时错误的判断条件修复 …
最新文章