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

这篇具有很好参考价值的文章主要介绍了(第三篇) 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文章来源地址https://www.toymoban.com/news/detail-644246.html

#永久修改主机名
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
#Ansible服务器安装  克隆部署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-node02

EOF

#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节点IP
  etcd:
    - 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          35m

NAME                                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          3h12m

NAME                 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”,一定要保存好,后面还会用到~

到了这里,关于(第三篇) ansible-kubeadm在线安装高可以用集群()的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue中的MVVM【第三篇】

            MVVM图示  🌈 一、MVVM简介          简单来说: MVVM(M-VM-M) ,一种更好的UI模式解决方案,MVVM通过数 据双向绑定 让数据 自动地双向同步。 M(Model):Model数据模型,json格式数据 V(View):View视图,jsp、html VM(ViewModel):ViewModel视图模型   🌈 二、MVVM详解        我以

    2024年02月04日
    浏览(30)
  • C++练级之初级:第三篇

    🤔首先我们先解决一下为什么C++支持函数重载,而C语言不支持? 这里就不得不提起编译链接了😁; 👉这是编译链接篇 以这三个简单的文件为例: 预处理阶段: 头文件的展开,条件编译,宏的替换,注释的删除等,最终处理完这些后test.c就会变成test.i,add.c就会变成add.i;

    2023年04月23日
    浏览(46)
  • SpringCloud第三篇:GateWay服务网关

          传统的单体架构中只需要开放一个服务给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,如果没有网关,客户端只能在本地记录每个微服务的调用地址,当需要调用的微服务数量很多时,它需要了解每个服务的接口,这个工作量很大。那有了网关之后

    2024年02月08日
    浏览(36)
  • 第三篇|金融人数据来源有哪些

       数据对于金融行业真的很重要,那么金融人有哪些途径查数据呢? 国内: 1. 国家统计局 这个应该是无论什么行业都使用最频繁的网站,每个月都会固定发上个月资产投资数据 、工业增加值和利润数据等常规数据,其他数据也会有,但更新会延迟,可能借助其他网站。

    2024年02月12日
    浏览(31)
  • Java语言第三篇集合

    集合和数组的对比 数组的长度是不可变的,集合的长度是可变的。 数组可以存基本数据类型和引用数据类型。集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类。 Collection 集合 是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素

    2024年01月23日
    浏览(59)
  • Solidity 合约安全,常见漏洞(第三篇)

    如果你只处理受信任的 ERC20 代币,这些问题大多不适用。然而,当与任意的或部分不受信任的 ERC20 代币交互时,就有一些需要注意的地方。 ERC20:转账扣费 当与不信任的代币打交道时,你不应该认为你的余额一定会增加那么多。一个 ERC20 代币有可能这样实现它的转账函数,

    2024年02月09日
    浏览(30)
  • 网络基础(第三篇)子网掩码

    文章目录 一、IP地址 二、 子网掩码 IP地址是什么? 在网络中用来标识设备的具体地址,数据需要通过此进行寻址传输。   IP地址的组成: 网络部分: 用来标识一个网络。代表IP地址所属网络,处于高位; 主机部分: 用来区分一个网络内的不同主机,能唯一标识网段上的某台

    2024年02月04日
    浏览(25)
  • 【jenkins】第三篇:jenkins凭据管理

    凭证管理 【系统管理】—【凭据管理】 1.1 创建Gitlab私人令牌 点击创建后,提示个人令牌,一定要先复制出来保存好,因为一刷新页面token就看不到了。 1.2 添加Gitlab API令牌凭据 【系统管理】—【凭据】—【全局】—【添加凭据】 选择 Gitlab API 令牌 类型,输入 Gitlab私人令牌

    2024年02月03日
    浏览(57)
  • 第三篇:对话框窗口部件 QDialog

    对话框(Dialog)是计算机图形用户界面(GUI)中的一种常见窗口类型, 通常用于与用户进行交互、获取信息、提供反馈或执行特定任务 。对话框的主要目的是与用户进行短期的、有限的交互,以完成特定的操作或任务,然后将控制返回给应用程序的主窗口或上下文。 按照运

    2024年02月11日
    浏览(43)
  • C++知识第三篇之继承

    继承是 面向对象编程 的重要特征,是对类设计层次的复用 1.继承定义 Parent :是父类,也称作基类(base class); Student :是子类,也称作派生类(derived class) public :表示继承方式为公共继承 2.继承方式 子类继承父类,有3种继承方式 继承方式的作用是: 对于父类非private的成员

    2024年02月06日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包