2021年7月22日星期四

kubespray-2.14.2安装kubernetes-1.18.10(ubuntu-20.04.1)

欢迎访问我的GitHub

https://github.com/zq2599/blog_demos

内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;

关于kubespray

Kubespray是开源的kubernetes部署工具,整合了ansible,可以方便的部署高可用集群环境,官网地址:https://github.com/kubernetes-sigs/kubespray,本文是用kubespray-2.14.2版本部署kuberneteskubernetes-1.18.10版本的实战;

重要前提

本次实战采用官方推荐的在线安装,因此会去谷歌镜像仓库下载镜像,需要您的网络可以访问谷歌服务;

机器信息

  • 因为作者太穷,本次实战筹集到共计两台机器,它们的主机名、IP地址和作用描述如下:
主机名IP地址作用操作系统
ansible192.168.50.134ansible主机CentOS7
node1192.168.50.27k8s服务器ubuntu-20.04.1
  • 可见kubernetes是被部署在ubuntu电脑上;

标准化设置

ubuntu电脑要做以下设置:

  1. 修改/etc/hostname,设置好主机名
  2. 修改/etc/hosts,将自己的主机名和IP地址添加进去
  3. 关闭防火墙
ufw disable
  1. 再次查看应该是关闭状态
root@ideapad:~# ufw status状态:不活动
  1. 关闭selinux,如果提示安装selinux-utils,表示selinux没有安装,就不用关系了
setenforce 0
  1. ipv4网络设置
modprobe br_netfilterecho '1' > /proc/sys/net/bridge/bridge-nf-call-iptablessysctl -w net.ipv4.ip_forward=1
  1. 立即禁用交换分区
swapoff -a
  1. 我的电脑上,禁用前的内存情况
root@ideapad:~# free -m    总计   已用  空闲  共享 缓冲/缓存 可用内存:  31913   551  30288   137  1073  30839交换:  2047   0  2047
  1. 执行了swapoff -a后再看,可见全部为0了
root@ideapad:~# free -m    总计   已用  空闲  共享 缓冲/缓存 可用内存:  31913   557  30281   137  1073  30833交换:   0   0   0
  1. 以上禁用交换分区的方法,虽然立即生效了,但是重启电脑后依旧恢复了交换分区的使用,要彻底禁用,请打开文件/etc/fstab,在下图红框这一行最前面添加#
    在这里插入图片描述

ansible主机免密码ssh登录

  1. ssh登录ansible主机;
  2. 生成ssh公私钥,输入命令ssh-keygen,然后连续四次回车:
  3. 输入命令ssh-copy-id root@192.168.50.27,将ansible的ssh分发给ubuntu主机,会要求输入yes和ubuntu主机的root账号的密码,完成输入后,以后ansible就可以免密码ssh登录ubuntu主机了:

ansible主机操作

  1. ssh登录ansible主机;
  2. 安装ansible应用:
yum install -y epel-release ansible
  1. 安装pip:
easy_install pip
  1. 通过pip安装jinja2:
pip2 install jinja2 --upgrade
  1. 安装python36:
yum install python36 -y
  1. 创建工作目录,进入工作目录:
mkdir /usr/local/kubespray && cd /usr/local/kubespray/
  1. 下载kubespray,我这里下载的是v2.14.2版本:
wget https://github.com/kubernetes-sigs/kubespray/archive/v2.14.2.tar.gz
  1. 解压:
tar -zxvf v2.14.2.tar.gz
  1. 进入解压后的目录:
cd kubespray-2.14.2/
  1. 安装kubespray所需的应用(注意是pip3):
pip3 install -r requirements.txt
  1. 复制一份demo配置信息到目录inventory/mycluster:
cp -rfp inventory/sample inventory/mycluster
  1. 进去看一下,可见mycluster目录下复制了很多文件:
[root@kubespray kubespray-2.14.2]# tree inventory/inventory/├── local│ ├── group_vars -> ../sample/group_vars│ └── hosts.ini├── mycluster│ ├── group_vars│ │ ├── all│ │ │ ├── all.yml│ │ │ ├── aws.yml│ │ │ ├── azure.yml│ │ │ ├── containerd.yml│ │ │ ├── coreos.yml│ │ │ ├── docker.yml│ │ │ ├── gcp.yml│ │ │ ├── oci.yml│ │ │ ├── openstack.yml│ │ │ └── vsphere.yml│ │ ├── etcd.yml│ │ └── k8s-cluster│ │  ├── addons.yml│ │  ├── k8s-cluster.yml│ │  ├── k8s-net-calico.yml│ │  ├── k8s-net-canal.yml│ │  ├── k8s-net-cilium.yml│ │  ├── k8s-net-contiv.yml│ │  ├── k8s-net-flannel.yml│ │  ├── k8s-net-kube-router.yml│ │  ├── k8s-net-macvlan.yml│ │  └── k8s-net-weave.yml│ └── inventory.ini└── sample ├── group_vars │ ├── all │ │ ├── all.yml │ │ ├── aws.yml │ │ ├── azure.yml │ │ ├── containerd.yml │ │ ├── coreos.yml │ │ ├── docker.yml │ │ ├── gcp.yml │ │ ├── oci.yml │ │ ├── openstack.yml │ │ └── vsphere.yml │ ├── etcd.yml │ └── k8s-cluster │  ├── addons.yml │  ├── k8s-cluster.yml │  ├── k8s-net-calico.yml │  ├── k8s-net-canal.yml │  ├── k8s-net-cilium.yml │  ├── k8s-net-contiv.yml │  ├── k8s-net-flannel.yml │  ├── k8s-net-kube-router.yml │  ├── k8s-net-macvlan.yml │  └── k8s-net-weave.yml └── inventory.ini10 directories, 45 files
  1. 设置集群信息(当前目录仍旧是kubespray-2.14.2):
declare -a IPS=(192.168.50.27)
  1. 配置ansible:
CONFIG_FILE=inventory/mycluster/hosts.yml python3 contrib/inventory_builder/inventory.py ${IPS[@]}
  1. 此时kubespray的脚本根据输入的IP信息做好了集群规划,具体信息可见inventory/mycluster/hosts.yml,如下所示,您也可以自行修改此文件:
[root@kubespray kubespray-2.14.2]# cat inventory/mycluster/hosts.ymlall: hosts: node1:  ansible_host: 192.168.50.27  ip: 192.168.50.27  access_ip: 192.168.50.27 children: kube-master:  hosts:  node1: kube-node:  hosts:  node1: etcd:  hosts:  node1: k8s-cluster:  children:  kube-master:  kube-node: calico-rr:  hosts: {}
  1. 执行以下命令即可开始安装,在线安装比较耗时请耐心等待:
ansible-playbook -i inventory/mycluster/hosts.yml --become --become-user=root cluster.yml
  1. 遇到网络问题失败退出时很常见的事情,此时将上述命令重复执行即可,ansible对于已经执行过的命令会跳过的;
  2. 安装完成时控制台输出类似如下的信息(太多了,省略了一些):
Saturday 21 November 2020 17:47:18 +0800 (0:00:00.025)  0:30:03.154 ***** Saturday 21 November 2020 17:47:18 +0800 (0:00:00.024)  0:30:03.179 ***** PLAY RECAP **********************************************************************************************************************************************************localhost     : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 node1      : ok=591 changed=95 unreachable=0 failed=0 skipped=1131 rescued=0 ignored=0 Saturday 21 November 2020 17:47:18 +0800 (0:00:00.021)  0:30:03.200 ***** =============================================================================== download : download_file | Download item ------------------------------------------------------------------------------------------------------------------ 1008.61skubernetes/preinstall : Update package management cache (APT) ---------------------------------------------------------------------------------------------- 119.25sdownload : download_container | Download image if required -------------------------------------------------------------------------------------------------- 42.36sdownload : download_container | Download image if required -------------------------------------------------------------------------------------------------- 38.26sdownload : download_container | Download image if required -------------------------------------------------------------------------------------------------- 37.31sdownload : download_container | Download image if required -------------------------------------------------------------------------------------------------- 36.60sdownload : download_container | Download image if required -------------------------------------------------------------------------------------------------- 35.01sdownload : download_container | Download image if required -------------------------------------------------------------------------------------------------- 34.00sdownload : download_container | Download image if required -------------------------------------------------------------------------------------------------- 30.55sdownload : download_container | Download image if required -------------------------------------------------------------------------------------------------- 27.47sdownload : download_container | Download image if required -------------------------------------------------------------------------------------------------- 26.78skubernetes/master : kubeadm | Initialize first master ------------------------------------------------------------------------------------------------------- 25.98sdownload : download_container | Download image if required -------------------------------------------------------------------------------------------------- 23.42sdownload : download_container | Download image if required -------------------------------------------------------------------------------------------------- 22.14sdownload : download_container | Download image if required -------------------------------------------------------------------------------------------------- 21.50sdownload : download_container | Download image if required -------------------------------------------------------------------------------------------------- 20.17sdownload : download_container | Download image if required -------------------------------------------------------------------------------------------------- 17.55scontainer-engine/docker : ensure docker packages are installed ----------------------------------------------------------------------------------------------- 9.73skubernetes/master : Master | wait for kube-scheduler --------------------------------------------------------------------------------------------------------- 7.83skubernetes-apps/ansible : Kubernetes Apps | Lay Down CoreDNS Template ---------------------------------------------------------------------------------------- 6.93s
  1. 至此,kubernetes集群环境部署完成,接下来简单验证一下环境是否可用;

检查环境

  1. ssh登录ubuntu机器;
  2. 查看节点、service、pod:
root@node1:~# kubectl get node -o wideNAME STATUS ROLES AGE VERSION INTERNAL-IP  EXTERNAL-IP OS-IMAGE    KERNEL-VERSION  CONTAINER-RUNTIMEnode1 Ready master 104m v1.18.10 192.168.50.27 <none>  Ubuntu 20.04.1 LTS 5.4.0-54-generic docker://19.3.12root@node1:~# kubectl get node -o wideNAME STATUS ROLES AGE VERSION INTERNAL-IP  EXTERNAL-IP OS-IMAGE    KERNEL-VERSION  CONTAINER-RUNTIMEnode1 Ready master 105m v1.18.10 192.168.50.27 <none>  Ubuntu 20.04.1 LTS 5.4.0-54-generic docker://19.3.12root@node1:~# kubectl get services --all-namespacesNAMESPACE  NAME      TYPE  CLUSTER-IP  EXTERNAL-IP PORT(S)     AGEdefault  kubernetes     ClusterIP 10.233.0.1  <none>  443/TCP     105mkube-system coredns      ClusterIP 10.233.0.3  <none>  53/UDP,53/TCP,9153/TCP 104mkube-system dashboard-metrics-scraper ClusterIP 10.233.12.230 <none>  8000/TCP     104mkube-system kubernetes-dashboard  ClusterIP 10.233.61.24 <none>  443/TCP     104mroot@node1:~# kubectl get pods --all-namespacesNAMESPACE  NAME           READY STATUS RESTARTS AGEkube-system calico-kube-controllers-6ccb68f9b5-kwqck  1/1  Running 0   104mkube-system calico-node-4lmpf        1/1  Running 0   104mkube-system coredns-dff8fc7d-2gnl8      1/1  Running 0   104mkube-system coredns-dff8fc......

原文转载:http://www.shaoqun.com/a/892109.html

跨境电商:https://www.ikjzd.com/

logo免费制作:https://www.ikjzd.com/w/1998

自贸区跨境通网站:https://www.ikjzd.com/w/1329

淘粉吧首页:https://www.ikjzd.com/w/1725.html


欢迎访问我的GitHubhttps://github.com/zq2599/blog_demos内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;关于kubesprayKubespray是开源的kubernetes部署工具,整合了ansible,可以方便的部署高可用集群环境,官网地址:https://github.com/kubernetes-
rakuten:https://www.ikjzd.com/w/2718
中国邮政邮乐网:https://www.ikjzd.com/w/1776
天津有什么好玩的地方,2017天津好玩又便宜的地方推荐:http://www.30bags.com/a/219756.html
天津有什么好玩的地方,2021天津好玩又便宜的地方推荐:http://www.30bags.com/a/423612.html
天津有什么特色小吃:http://www.30bags.com/a/414821.html
天津有条老街,不仅是天津卫的发祥地,还拥有最早的妈祖庙之一_古文化街:http://www.30bags.com/a/219996.html
老师慢慢张开腿坐上去 轻轻的顶开老师的两瓣:http://lady.shaoqun.com/a/247348.html
我与闺蜜的一次互换老公经历:http://lady.shaoqun.com/m/a/68092.html
深圳有海岛吗:http://www.30bags.com/a/517414.html
深圳情人岛在哪里(地址+怎么去):http://www.30bags.com/a/517415.html
深圳情人岛需要门票吗:http://www.30bags.com/a/517416.html
深圳西涌情人岛开放了吗:http://www.30bags.com/a/517417.html

没有评论:

发表评论

跨境电商资讯:外贸宣传平台有哪些(出口的

现在很多做外贸的人都非常关注 外贸企业怎么推广 ,而现在推广的途径和平台有很多,企业如果都做,成本和时间精力是一个问题,而且并不是所有的推广渠道都是有用的。今天云程网络就来为大家盘点几个有效的外贸推广渠道。 一、海外社交媒体营销 Facebook,领英等海外社交媒体营销在近几年得...