***【摘要】***

参考链接:

https://github.com/wise2c-devops/breeze/blob/v1.15/README-CN.md [引言部分]
https://github.com/wise2c-devops/breeze/blob/master/BreezeManual-CN.md 【操作部分】
https://github.com/wise2c-devops/breeze/blob/master/TroubleShooting-CN.md 【故障定位】

i. 开篇忠告

在部署Breeze的时候,请不要轻易修改配置文件,修改部署的版本,Breeze给定的版本匹配是详细阅读了K8S开发的匹配版本类型。如果想了解各个版本的相关关系可参考如下链接,详细阅读后再做修正。
实际业务中,客户的K8S和docker的版本是有要求的,那时候才会不得已修正版本。
【更换docker版本不是不可以 但需要先看一下每个k8s版本官方release note里认证的docker版本列表 不要超出列表范围即可】

看这里 https://github.com/kubernetes/kubernetes/releases
再选某个版本:
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.17.md#v1174

ii. Notice:

适用操作系统:

RHEL/CentOS: 7.4/7.5/7.6/7.7
Ubuntu 16/18

操作注意事项:

  1. 请不要把Breeze所在的部署主机加入部署集群主机列表
  2. 为了避免包冲突,请使用纯净的CentOS Minimal安装出来的OS或未经升级过的Ubuntu来部署集群
  3. 对于最小化安装的Ubuntu系统,默认python版本为3,没有安装python2,因此需要对所有Ubuntu被部署节点执行一条命令: ln -s /usr/bin/python3 /usr/bin/python
  4. PrometheusOperator + Kube-Prometheus项目为选装项,需要该功能的中国区用户请务必先对每台被部署机节点设置正确的时区,可参照以下命令:
    timedatectl set-timezone Asia/Shanghai

安装过程演示视频在此:

https://pan.baidu.com/s/1X0ZYt48wfYNrSrH7vvEKiw

PDF手册请在此处下载:

链接:https://pan.baidu.com/s/1h301IEE8j5uQVnCGKxzwIA
提取码:3j9q

iii. Breeze软件架构简图:

iv. 网络规划

v. 部署文件研读:


在安装下载好了 docker-compose.yml 之后,执行了 docker-compose up –d


在部署集群之前,做如下操作,可以修改docker的部署版本。

修改docker-compose.yml 文件内容,可以指定 K8S的版本:

                                             ***【正文】***

1. 部署安装升级扩容K8S集群

1.1 安装步骤:

一、准备部署主机(deploy/ 10.2.173.50)
(0)设置时区:

timedatectl set-timezone Asia/Shanghai

设置主机名:

hostnamectl set-hostname [master01]

(1)以标准Minimal方式安装CentOS7.6(1810) x64之后(7.4和7.5也支持),登录shell环境,执行以下命令开放防火墙:【必须执行,不然GUI界面创建不了集群】

setenforce 0 sed --follow-symlinks -i “s/SELINUX=enforcing/SELINUX=disabled/g” /etc/selinux/config
firewall-cmd --set-default-zone=trusted
firewall-cmd --complete-reload

(2)安装docker-compose命令 【文件大小跟版本不一样,大概10M至17M】

curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-(uname−s)−(uname -s)-(uname−s)−(uname -m) -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

(3)安装docker

yum install docker
systemctl enable docker && systemctl start docker

(4)建立部署主机到其它所有服务器的ssh免密登录途径
【免密,必须执行部署的时候要求登录各个节点,没有免密是不能部署成功的】
a) 生成秘钥,执行:

ssh-keygen

b) 针对目标服务器做ssh免密登录,依次执行:

ssh-copy-id 10.2.173.51
ssh-copy-id 10.2.173.52
ssh-copy-id 10.2.173.53
ssh-copy-id 10.2.173.54
ssh-copy-id 10.2.173.56

二、获取针对K8S某个具体版本的Breeze资源文件并启动部署工具,例如此次实验针对刚刚发布的K8Sv1.13.1

curl -L https://raw.githubusercontent.com/wise2c-devops/breeze/v1.15.10/docker-compose.yml -o docker-compose.yml
docker-compose up –d

具体网页执行部署操作,参考官方操作PDF文档

链接:https://pan.baidu.com/s/1h301IEE8j5uQVnCGKxzwIA
提取码:3j9q

【Docker的镜像保存和导出命令】

docker save $(docker images | grep -v TAG|awk ‘{print $1":"$2}’) -o breeze-docker.tar
docker load –i breeze-docker.tar

1.2 1.2 安装集群过程故障定位

  1. Docker加速,:dockerhub.azk8s.cn/wise2c/playbook:v1.15.10
    修改:docker-compose.yml 文件,带有image组件的部分,如下截图

  1. 必须执行第一步关闭selinux

【cmd】:vi /etc/selinux/config
改SELINUX=disabled

  1. 如果启用了breeze,则先关闭breez在启用:

【cmd】docker-compose down
docker-compose up -d

  1. 安装prometheus出现get http://harbor节点失败
    检测 harbor节点是否正常 (docker ps)
    否则 在harbor节点操作

【cmd】:cd /var/lib/wise2c/harbor/harbor
docker-compose down
docker-compose up –d

5. 在执行安装 promethues 失败的时候

【cmd】:cd /var/tmp/wise2c/prometheus/

    修改文件 deploy.sh 如下图两个地方然后执行这个shell 文件即可

查看创建K8S上每个组件的日志:

kubectl describe [deploy|pod|svc|ep|….] [(deploy|pod|svc|ep|…)-name.]

比如:

[root@master01 ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
mysql-deploy-bf858685b-26sd8 1/1 Running 0 21m
nginx-deploy-7689897d8d-j6kqh 1/1 Running 0 5h40m
nginx-deploy-7689897d8d-vm856 1/1 Running 0 32m
nginx-deploy-7689897d8d-xqwp8 1/1 Running 0 32m
[root@master01 ~]# kubectl describe pods nginx-deploy-7689897d8d-j6kqh
Name: nginx-deploy-7689897d8d-j6kqh
Namespace: default
Priority: 0
Node: worker04/10.2.173.54
Start Time: Sat, 21 Mar 2020 13:46:56 +0800
Labels: pod-template-hash=7689897d8d
run=nginx-deploy
Annotations:
Status: Running
IP: 10.244.3.33
Controlled By: ReplicaSet/nginx-deploy-7689897d8d Containers: nginx-deploy:
Container ID: docker://a6c1a2f008bca9155a849421329d3340a82cc218ec7cf388db51bc3df34c76ee
Image: nginx:1.14-alpine
Image ID: docker-pullable://nginx@sha256:485b610fefec7ff6c463ced9623314a04ed67e3945b9c08d7e53a47f6d108dc7
Port: 80/TCP
Host Port: 0/TCP
State: Running
Started: Sat, 21 Mar 2020 13:47:20 +0800
Ready: True
Restart Count: 0
Environment:
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-vjz7x (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
default-token-vjz7x:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-vjz7x
Optional: false
QoS Class: BestEffort
Node-Selectors:
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:

##1.3 K8S各类组件访问方式

  1. 通过部署机部署【操作参考部署章节】
    http://Node-IP:88
  1. 登录kubernetes(K8S)dashborad 进行容器操作

http://Node-IP:30300

新版本Dashboard引入了验证模式,可以通过以下命令获取admin-user的访问令牌:

kubectl -n kube-system describe secret $(kubectl -n kube-system get
secret | grep admin-user | awk ‘{print $1}’)

将返回的token字串粘贴至登录窗口即可实现登录。

  1. 以下三个组件功能,采用 http://Node-IP:Port_Num访问就可以获得相关功能的GUI展示【可以看到K8S业务上的流量,告警等详细信息】
  • Prometheus

NodePort for Prometheus 30900
NodePort for AlertManager 30903
NodePort for Grafana 30901

  • Istio

NodePort for Kiali in istio-system 30201
NodePort for Jaeger in istio-system 30280
NodePort for Prometheus in istio-system 30290
NodePort for Grafana in istio-system 30291

1.4 升级K8S操作

修改 docker-compose.yml 文件为:


执行【cmd】
docker-compose stop
docker-compose rm
docker-compose up –d

上述步骤完成后,进入部署界面选择版本进行重新部署即可【参看上述部署操作】

【注意: 如果只是升级,就选择对应组件,及其版本进行升级即可
如果是降级,需要重置组件,重新部署即可】

1.5 扩容work节点操作

选择docker以及kubernetes 两个组件如下图:

在kubernetes 组件中如图选择:

2. 常见指令操作机

2.1 普通CentOS更新docker版本

以此版本为目标 1.15.4 k8s 18.06.3-c1 docker
上述安装好了 K8S的版本

现在只需要在每个Node上直接全新安装docker版本执行覆盖即可。

https://download.docker.com/linux/centos/7/x86_64/stable/Packages

进入上述网站找到对应的版本
在部署机上操作:
【cmd】

wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.06.3.ce-3.el7.x86_64.rpm
yum localinstall -y docker-ce-18.06.3.ce-3.el7.x86_64.rpm
systemctl enable docker.service
systemctl start docker
ps -ef |grep docker
docker version

2.2 测试创建一个POD业务

kubectl run nginx-deploy --image=nginx:1.14-alpine --port=80 --replicas=1 --record

【此命令发布,要求K8S能够访问互联网】

对外发布一个地址可以进行访问

kubectl expose deployment nginx-deploy --type=ClusterIP --name=nginx80 --port=8090 --target-port=80 --external-ip=10.2.173.59

发布后的效果,及其管理界面信息:


使用Breeze快速搭建GUI方式K8S集群操作手册相关推荐

  1. 运维实践 | 使用K3S之快速搭建精简版本K8S集群环境,助力开发测试环境!

    欢迎关注「WeiyiGeek」 点击

  2. CentOS7中使用kubeadm快速部署一套K8S集群

    一.Kubernetes概述 1.1 Kubernetes是什么 Kubernetes是Google在2014年开源的一个容器集群管理系统,Kubernetes简称K8S K8S用于容器化应用程序的部 ...

  3. kubernetes (二):通过Tectonic在本地搭建多节点k8s集群

    下载文件 我的环境是window系统 (要安装vagrant 和virtualbox) 通过vagrantfile 创建 在当前目录运行  vagrant up 就可以了 会通过virtualbox ...

  4. Linux环境快速搭建elasticsearch6.5.4集群和Head插件

    今天来一起实战Linux环境下搭建elasticsearch6.5.4集群和Head插件: 环境信息 操作系统:Ubuntu 16.04.5 LTS JDK:1.8.0_191 elasticsear ...

  5. kubeadm搭建测试环境k8s集群

    目录 实验环境规划 1.实验环境准备 1.1.配置机器主机名 1.2.配置主机 hosts 文件,相互之间通过主机名互相访问 1.3.配置主机之间无密码登录 1.4.关闭交换分区 swap,提升性能 ...

  6. kubeadm安装k8s集群详细手册

    文章目录 一.k8s集群搭建 1.安装要求 2.关闭防火墙.selinux.swap分区 3.配置hostname.hosts. iptables 4.配置k8s阿里源 5.部署k8s的master和 ...

  7. kubeadm快速部署一套K8S集群

    Kubernetes集群组件介绍 Master组件 kube-apiserver Kubernetes API, 集群的统一入口,各组件协调者,以RESTful API提供接口服务,所有对象资源的增删 ...

  8. 单机 搭建kafka集群 本地_单机快速搭建多节点kafka集群

    有时候为了更好地了解kafka集群的运行机制,需要自己搭建kafka集群.本文的目的就是让大家在单机上快速搭建kafka集群(仅作为单机测试使用). 环境及工具版本 mac OS 10.15.5 ka ...

  9. centos系统 用kubeadm 搭建高可用k8s集群

    官网教程(部分国外镜像源下载会超时) 1. 安装前调整系统配置 主机规划 主节点1 hostnamectl set-hostname k8s-master01 && bash 主节点2 ...

最新文章

  1. 日本机器人实力大盘点,和Atlas的高调刷屏相比,日本机器人的默默崛起更让人忌惮...
  2. excel随机数_Excel使用函数生成1100的不重复随机数 2种方法
  3. ajax 和xmlHttpRequest区别
  4. 浏览器兼容--条件样式,选择符前缀,样式属性前缀
  5. Python学习札记(二十八) 模块1
  6. linux centos 6.5压缩文件,CentOS 6.10 解压 rar压缩包
  7. 在Java中使用FileChannel和ByteBuffer对文件进行读写
  8. docker导入镜像 liunx_docker扫盲?面试连这都不会就等着挂吧
  9. 小爱音响调用php接口_PHP调用语音合成接口
  10. html获取子节点数量,css判断子元素个数
  11. DML、DDL、DCL区别
  12. delphi 异步 调用 带参数_Dubbo 关于同步/异步调用的几种方式
  13. 第1章 游戏之乐——光影切割问题
  14. vue-cli3安装遇到的问题,卸载不掉旧版本,导致更新不了
  15. itextpdf生成pdf文件(含图片)
  16. 春招面试的总结与自我反省
  17. java excel 饼图_Java 在Excel中添加分离型饼图、环形图
  18. 基于android的学单词app
  19. lpfs存储服务器怎样维护,ipfs云节点存储服务器
  20. 国内代码托管平台gitee的使用

热门文章

  1. 无法安装64(32)office,已经安装32(64)office解决方法
  2. 和菜头的独立 Blog 三十万点击量值得祝贺
  3. 任正非:春风送暖入屠苏——2010年新年献词
  4. 浅谈学术论文rebuttal
  5. CDM是什么,和CDP的区别?
  6. cuda矩阵相乘_CUDA计算矩阵相乘
  7. Metal 框架之使用 Metal Debugger 查看 GPU 工作负载
  8. jupyter–lab 配置文件jupyter_lab_config.py
  9. 洛谷 P1719 最大加权矩形 (前缀和,动态规划)
  10. 最短路径算法(上)——迪杰斯特拉(Dijikstra)算法