***【摘要】***

参考链接:

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- ( u n a m e − s ) − (uname -s)- (unames)(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
在这里插入图片描述
发布后的效果,及其管理界面信息:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐