分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

利用ansible来做kubernetes 1.10.3集群高可用的一键部署

发布时间:2023-09-06 02:02责任编辑:熊小新关键词:kubernetes

请读者务必保持环境一致

安装过程中需要下载所需系统包,请务必使所有节点连上互联网

本次安装的集群节点信息


实验环境:VMware的虚拟机

IP地址主机名CPU内存
192.168.77.133k8s-m16核6G
192.168.77.134k8s-m26核6G
192.168.77.135k8s-m36核6G
192.168.77.136k8s-n16核6G
192.168.77.137k8s-n26核6G
192.168.77.138k8s-n36核6G

另外由所有 master节点提供一组VIP 192.168.77.140

本次安装的集群拓扑图


 
image.png

本次使用到的ROLE

  • Ansible Role 系统环境 之【epel源设置】
  • Ansible Role 系统环境 之【hostnames】
  • Ansible Role 容器 之【docker】
  • Ansible Role 容器 之【kubernetes】

ansible role怎么用请看下面文章

  • Ansible Role【怎么用?】

集群安装方式

以static pod方式安装kubernetes ha高可用集群。

Ansible管理节点操作


OS: CentOS Linux release 7.4.1708 (Core)
ansible: ?2.5.3

安装Ansible
# yum -y install ansible# ansible --versionansible 2.5.3 ?config file = /etc/ansible/ansible.cfg ?configured module search path = [u‘/root/.ansible/plugins/modules‘, u‘/usr/share/ansible/plugins/modules‘] ?ansible python module location = /usr/lib/python2.7/site-packages/ansible ?executable location = /usr/bin/ansible ?python version = 2.7.5 (default, Aug ?4 2017, 00:39:18) [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)]
配置ansible
# sed -i ‘s|#host_key_checking|host_key_checking|g‘ /etc/ansible/ansible.cfg
下载role
# yum -y install git# git clone https://github.com/kuailemy123/Ansible-roles.git /etc/ansible/roles正克隆到 ‘/etc/ansible/roles‘...remote: Counting objects: 1767, done.remote: Compressing objects: 100% (20/20), done.remote: Total 1767 (delta 5), reused 24 (delta 4), pack-reused 1738接收对象中: 100% (1767/1767), 427.96 KiB | 277.00 KiB/s, done.处理 delta 中: 100% (639/639), done.
下载kubernetes-files.zip文件

这是为了适应国情,导出所需的谷歌docker image,方便大家使用。

文件下载链接:https://pan.baidu.com/s/1BNMJLEVzCE8pvegtT7xjyQ 密码:qm4k

# yum -y install unzip# unzip kubernetes-files.zip -d /etc/ansible/roles/kubernetes/files/
配置主机信息
# cat /etc/ansible/hosts[k8s-master]192.168.77.133192.168.77.134192.168.77.135[k8s-node]192.168.77.136192.168.77.137192.168.77.138[k8s-cluster:children]k8s-masterk8s-node[k8s-cluster:vars]ansible_ssh_pass=123456

k8s-master组为所有的master节点主机。k8s-node组为所有的node节点主机。k8s-cluster包含k8s-masterk8s-node组的所有主机。

请注意, 主机名称请用小写字母, 大写字母会出现找不到主机的问题。

配置playbook
# cat /etc/ansible/k8s.yml---# 初始化集群- hosts: k8s-cluster ?serial: "100%" ?any_errors_fatal: true ?vars: ???- ipnames: ???????‘192.168.77.133‘: ‘k8s-m1‘ ???????‘192.168.77.134‘: ‘k8s-m2‘ ???????‘192.168.77.135‘: ‘k8s-m3‘ ???????‘192.168.77.136‘: ‘k8s-n1‘ ???????‘192.168.77.137‘: ‘k8s-n2‘ ???????‘192.168.77.138‘: ‘k8s-n3‘ ?roles: ???- hostnames ???- repo-epel ???- docker# 安装master节点- hosts: k8s-master ?any_errors_fatal: true ?vars: ???- kubernetes_master: true ???- kubernetes_apiserver_vip: 192.168.77.140 ?roles: ???- kubernetes# 安装node节点- hosts: k8s-node ?any_errors_fatal: true ?vars: ???- kubernetes_node: true ???- kubernetes_apiserver_vip: 192.168.77.140 ?roles: ???- kubernetes ???# 安装addons应用- hosts: k8s-master ?any_errors_fatal: true ?vars: ???- kubernetes_addons: true ???- kubernetes_ingress_controller: nginx ???- kubernetes_apiserver_vip: 192.168.77.140 ?roles: ???- kubernetes

kubernetes_ingress_controller 还可以选择traefik

执行playbook
# ansible-playbook /etc/ansible/k8s.yml......real ???26m44.153suser ???1m53.698ssys 0m55.509s
 
asciicast
验证集群版本
# kubectl versionClient Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.3", GitCommit:"2bba0127d85d5a46ab4b778548be28623b32d0b0", GitTreeState:"clean", BuildDate:"2018-05-21T09:17:39Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.3", GitCommit:"2bba0127d85d5a46ab4b778548be28623b32d0b0", GitTreeState:"clean", BuildDate:"2018-05-21T09:05:37Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
验证集群状态
kubectl -n kube-system get po -o wide -l k8s-app=kube-proxykubectl -n kube-system get po -l k8s-app=kube-dnskubectl -n kube-system get po -l k8s-app=calico-node -o widecalicoctl node statuskubectl -n kube-system get po,svc -l k8s-app=kubernetes-dashboardkubectl -n kube-system get po,svc | grep -E ‘monitoring|heapster|influxdb‘kubectl -n ingress-nginx get podskubectl -n kube-system get po -l app=helmkubectl -n kube-system logs -f kube-scheduler-k8s-m2helm version

这里就不写结果了。

查看addons访问信息

在第一台master服务器上

kubectl cluster-infoKubernetes master is running at https://192.168.77.140:6443Elasticsearch is running at https://192.168.77.140:6443/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxyheapster is running at https://192.168.77.140:6443/api/v1/namespaces/kube-system/services/heapster/proxyKibana is running at https://192.168.77.140:6443/api/v1/namespaces/kube-system/services/kibana-logging/proxykube-dns is running at https://192.168.77.140:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxymonitoring-grafana is running at https://192.168.77.140:6443/api/v1/namespaces/kube-system/services/monitoring-grafana/proxymonitoring-influxdb is running at https://192.168.77.140:6443/api/v1/namespaces/kube-system/services/monitoring-influxdb:http/proxy
# cat ~/k8s_addons_access

集群部署完成后,建议重启集群所有节点。



作者:lework
链接:https://www.jianshu.com/p/265cfb0811b2
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

利用ansible来做kubernetes 1.10.3集群高可用的一键部署

原文地址:https://www.cnblogs.com/cheyunhua/p/9263205.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved