• K8s集群搭建(二)


    vim /etc/hosts
    192.168.193.10 deploy
    192.168.193.11 master
    192.168.193.12 node2
    192.168.193.13 node3
     
    etcd数据库部署在192.168.193.11 master   192.168.193.12 node2   192.168.193.13 node3
     
     
    一、利用ansible部署kubernetes准备:
    集群介绍
    本系列文档致力于提供快速部署高可用k8s集群的工具,并且也努力成为k8s实践、使用的参考书;基于二进制方式部署和利用ansible-playbook实现自动化:既提供一键安装脚本,也可以分步执行安装各个组件,同时讲解每一步主要参数配置和注意事项;二进制方式部署有助于理解系统各组件的交互原理和熟悉组件启动参数,有助于快速排查解决实际问题。
    版本组件
    kubernetes v1.9.7
    etcd v3.3.4
    docker 18.03.0-ce
    calico/node:v3.0.6
    calico/cni:v2.0.5
    calico/kube-controllers:v2.0.4
    centos 7.3+
     
    集群规划和基础参数设定
    1. 1、高可用集群所需节点配置如下:
    • 部署节点 x1 : 运行这份 ansible 脚本的节点
    • etcd节点 x3 : 注意etcd集群必须是1,3,5,7...奇数个节点
    • master节点 x1 : 运行集群主要组件
    • node节点 x3 : 真正应用部署的节点,根据需要增加机器配置和节点数
    master节点就是node1节点
    1. 2、在部署节点准备ansible:使用ansible的doker环境启动
    (1)下载内部源配置脚本
    sh yum-repo.sh
     
    (2)下载并安装docker
    本机已有4台节点走有了
    ls
    tar zxvf docker.tar.gz
    ls
    cd docker/
    ls
    sh docker.sh
    systemctl status docker
    docker images
     
     
    (3)下载并运行docker版ansible
    [root@deploy ~]# docker pull reg.yunwei.edu/learn/ansible:alpine3
    [root@deploy ~]# docker images
    [root@deploy ~]# docker run -itd -v /etc/ansible:/etc/ansible -v /etc/kubernetes/:/etc/kubernetes/ -v /root/.kube:/root/.kube -v /usr/local/bin/:/usr/local/bin/ 1acb4fd5df5b  /bin/sh
     
     
    [root@deploy ~]# docker exec -it 0934496d7cef /bin/sh
     
    (4)配置每台机器之间主机名以及解析
     
    (5)进入ansible容器,配置免密登录
    #ssh-keygen  回车 回车 回车
    #ssh-copy-id $Ips   #$IPs为所有节点地址包括自身,按照提示输入yes 和root密码
    测试各节点是否正常
     
    [root@deploy ~]# wget http://download2.yunwei.edu/shell/kubernetes.tar.gz
    [root@deploy ~]# tar zxf kubernetes.tar.gz
     
     
     
     
     
    [root@deploy example]# cd ..
    [root@deploy ansible]# pwd
    /etc/ansible
    [root@deploy ansible]# vim hosts
     
     
     
     
     
     
     
    wq保存退出
     
    [root@deploy ansible]# docker ps
    [root@deploy ansible]# docker exec -it 0934496d7cef /bin/sh
    / # cd /etc/ansible/
    / # ansible all -m ping
    发送密钥
    /etc/ansible # ssh-keygen
    /etc/ansible # ssh-copy 192.168.193.10
    /etc/ansible # ssh-copy-id 192.168.193.11
    /etc/ansible # ssh-copy-id 192.168.193.12
    /etc/ansible # ssh-copy-id 192.168.193.13
     
     
     
    执行
    /etc/ansible # ansible-playbook 01.prepare.yml
    /etc/ansible # ansible-playbook 02.etcd.yml
    第三步如果机器上有docker就不用执行,没有就执行
    /etc/ansible # ansible-playbook 03.docker.yml
    /etc/ansible # ansible-playbook 04.kube-master.yml
    /etc/ansible # ansible-playbook 05.kube-node.yml
     
    克隆会话
    [root@deploy ~]# cd kubernetes/
    [root@deploy kubernetes]# tar zxf image.tar.gz
    把解压的文件发送到 node123
    [root@deploy kubernetes]# scp -r image  192.168.193.11:/root/
    [root@deploy kubernetes]# scp -r image  192.168.193.12:/root/
    [root@deploy kubernetes]# scp -r image  192.168.193.13:/root/
     
    三个节点都进到目里
    [root@master ~]# cd image/
    [root@master image]# cd calico/
    [root@node2 ~]# cd image/
    [root@node2 image]# cd calico/
    [root@node3 image]# cd calico
    [root@node3 ~]# cd image/
     
     
    [root@node3 image]# pwd
    /root/image
    三个节点都执行
    mv *.tar calico/
    mv *.tar.gz calico/
     
    /root/image/calico这个路径下执行这条命令,注意标点符号不是单引号,是反引号
    [root@master calico]# for ls in `ls`;do docker load -i $ls;done        导入镜像
     
     
    [root@node2 image]# cd /root/image/calico
    [root@node2 calico]# for ls in `ls`;do docker load -i $ls;done
     
    [root@node3 image]# cd /root/image/calico
    [root@node3 calico]# for ls in `ls`;do docker load -i $ls;done
     
     
    各节点docker images  查看镜像
     
     
     
    回到容器里执行06命令
    ansible-playbook 06.network.yml
     
    执行完后
     
     
    /etc/ansible/manifests/coredns # pwd
    /etc/ansible/manifests/coredns
     
    /etc/ansible/manifests/coredns # kubectl  create -f .
     
     
     
    node列表
    [root@deploy ~]# kubectl  get node
     
     
    查看node详细信息
    [root@deploy ~]# kubectl  get node -o wide
     
     
    查看pod详细讯息
     
     
     
     
    测试网络是否正常使用
     
     
     
     
    /etc/ansible/manifests/dashboard # kubectl  create -f .
     
     
     
     
    正常通信   这样集群就算部署完成了
     
     
    登录页面
    先查看集群状态
    [root@deploy ~]# kubectl  cluster-info
     
     
     
    admin/admin
     
     
    获取令牌
    kubectl -n kube-system describe secret $(kubectl -n kube-system get secret|grep admin-user|awk '{print $1}')
     
     
     
     
     
    写个脚本
    [root@deploy ~]# vim token.sh
    下次获取令牌直接运行脚本就可以了
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

  • 相关阅读:
    zookeeper.KeeperException$UnimplementedException: KeeperErrorCode = Unimplemented for {root.path}
    IDEA对新建java线程池的建议
    Hbase配置WEB UI界面
    Tomcat清理日志文件无法立即释放磁盘空间
    Tomcat多应用启动报错:org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access: this web application instance has been stopped already. Could not load [].
    Soliworks 2016建模细节总结(1)
    关于自学C语言开始时应该注意的问题分享—未完待续......
    Word或者WPS里证件照的背景底色和像素调整
    Linux命令大全(非常全,史上最全)
    Android项目结构介绍
  • 原文地址:https://www.cnblogs.com/hao6/p/12864144.html
Copyright © 2020-2023  润新知