博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)
阅读量:7093 次
发布时间:2019-06-28

本文共 7931 字,大约阅读时间需要 26 分钟。

紧接上篇

四.Heapster+InfluxDB+Grafana

注意: 时间不同步 Grafana 查看里面不会有数据

[root@node1 ~]# git clone https://github.com/kubernetes/heapster.git[root@node1 ~]# cd heapster/deploy/kube-config/influxdb/[root@node1 ~]# lsgrafana.yaml  heapster.yaml  influxdb.yaml

手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)

我们需要创建三个容器,修改镜像地址为阿里云镜像地址,否则无法 pull 下来镜像

1.Influxdb

[root@node1 influxdb]# vi influxdb.yaml#镜像地址修改为深圳镜像地址(如果下载不下来,分享完会附带资料,每个节点都要导入镜像)image: registry.cn-shenzhen.aliyuncs.com/rancher_cn/heapster-influxdb-amd64:v1.3.3[root@node1 influxdb]# kubectl  create -f  influxdb.yaml kubectl get pods --namespace=kube-system -o wide

2.Grafana

[root@node1 influxdb]# vi   grafana.yaml#镜像地址修改为深圳镜像地址(如果下载不下来,分享完会附带资料,每个节点都要导入镜像)image: registry.cn-shenzhen.aliyuncs.com/rancher_cn/heapster-grafana-amd64:v4.4.3[root@node1 influxdb]# kubectl  create -f  grafana.yaml

3.Heapster

[root@node1 influxdb]# vi heapster.yaml #镜像地址修改为深圳镜像地址(如果下载不下来,本文档会附带,每个节点都要导入镜像)image: registry.cn-hangzhou.aliyuncs.com/outman_google_containers/heapster-amd64:v1.4.0- --source=kubernetes:http://192.168.31.221:8080?inClusterConfig=false&useServiceAccount=true&auth=

手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)

[root@node1 influxdb]# kubectl  create -f  heapster.yaml

4.查看三个容器的状态

手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)

5.访问 dashboard 进行测试

手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)
手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)

手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)

五.使用glusterfs做持久化存储

1.先安装 gluster 源

yum install centos-release-gluster -y

2.安装 glusterfs 组件

yum install -y glusterfs glusterfs-server glusterfs-fuse glust

3.创建 glusterfs 目录

mkdir /opt/glusterd

4.修改 glusterd 目录

sed -i 's/var\/lib/opt/g' /etc/glusterfs/glusterd.vol

5.启动 glusterfs

systemctl start glusterd.service  && systemctl enable glusterd.service

6.配置 glusterfs

[root@node1 k8s]# vi /etc/hosts #每个节点都要配hosts

手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)

7.开放端⼝

iptables -I INPUT -p tcp --dport 24007 -j ACCEPT

8.创建存储⽬录

mkdir /opt/gfs_data

9.添加节点到集群

# 执⾏操作的本机不需要probe 本机gluster peer probe node2.example.comgluster peer probe node3.example.com

10.查看集群状态

gluster peer status

手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)

11.配置 volume

GlusterFS 中的 volume 的模式有很多中,包括以下⼏种:

分布卷(默认模式):即DHT, 也叫 分布卷: 将⽂件已hash算法随机分布到 ⼀台服务器节点中存储。

复制模式:即 AFR, 创建 volume 时带 replica x 数量: 将⽂件复制到 replica x 个节点中。

条带模式:即 Striped, 创建 volume 时带 stripe x 数量: 将⽂件切割成数据块,分别存储到 stripe x 个节点中 ( 类似raid 0 )。

分布式条带模式:最少需要4台服务器才能创建。 创建 volume 时 stripe 2 server = 4 个节点: 是 DHT 与 Striped 的组合型。

分布式复制模式:最少需要4台服务器才能创建。 创建 volume 时 replica 2 server = 4 个节点:是 DHT 与 AFR 的组合型。

条带复制卷模式:最少需要4台服务器才能创建。 创建 volume 时stripe 2 replica 2 server = 4 个节点: 是 Striped 与 AFR 的组合型。

三种模式混合: ⾄少需要8台 服务器才能创建。 stripe 2 replica 2 ,每4个节点 组成⼀个 组。

[root@node1 k8s]#   gluster volume create  k8s-volume  node1.example.com:/opt/gfs_data/ node2.example.com:/opt/gfs_data/ node3.example.com:/opt/gfs_data/    force

12.查看 volume 状态

[root@node1 k8s]# gluster volume info

手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)

13.启动 分布卷

[root@node1 k8s]# gluster volume start k8s-volume

14.挂载测试

[root@node2 ~]# mount -t glusterfs node1.example.com:k8s-volume /media/

手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)

15.配置 endpoints

{  "kind": "Endpoints",  "apiVersion": "v1",  "metadata": {    "name": "glusterfs-cluster"  },  "subsets": [    {      "addresses": [        {          "ip": "192.168.0.221"        }      ],      "ports": [        {          "port": 1990        }      ]    },    {      "addresses": [        {          "ip": "192.168.0.222"        }      ],      "ports": [        {          "port": 1990        }      ]    }  ]}[root@node1 ~]# kubectl  create -f glusterfs-endpoints.json

查看 endpoints 信息

手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)
创建服务:

{  "kind": "Service",  "apiVersion": "v1",  "metadata": {    "name": "glusterfs-cluster"  },  "spec": {    "ports": [      {"port": 1990}    ]  }}[root@node1 ~]# kubectl  create -f glusterfs-service.json [root@node1 ~]# kubectl get svc

手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)

16.创建测试 pod

"path": "k8s-volume"                #这里改为,gfs卷名字[root@node1 k8s]# kubectl  create -f glusterfs-pod.json

手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)

[root@node1 k8s]#  kubectl exec glusterfs  mount | grep gluster

手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)

六.Docker-registry web 私有仓库构建

环境说明:

我们选取 master 192.168.0.221 做私有仓库地址 ( docker-ce 的安装这里不再描述)
使用到的镜像:

docker-registry-web.tar.gz      #镜像仓库web展示registry-v2.6.2.tar.gz           #镜像仓库容器docker-registry-web-conf.tar.gz  #创建镜像仓库yaml配置文件

1.查看 docker 版本,配置 hosts 文件

[root@node1 ~]# vi /etc/hosts192.168.0.221 registry-srv192.168.0.221 registry-web

手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)

2.导入镜像

[root@node1 ~]# docker load -i  docker-registry-web.tar.gz[root@node1 ~]# docker load -i  registry-v2.6.2.tar.gz

3.创建容器

[root@node1 ~]# tar -zxvf docker-registry-web-conf.tar.gz

1)启动 registry:

# docker run -v /root/docker-registry-web/conf/registry-srv.yml:/etc/docker/registry/config.yml:ro -v /root/docker-registry-web/conf/auth.cert:/etc/docker/registry/auth.cert:ro -v /data:/var/lib/registry/ -p 5000:5000 --restart=always --name registry-srv -d registry:2.6.2

2)启动 registry-web

# docker run -d -v /root/docker-registry-web/conf/registry-web.yml:/conf/config.yml:ro -v /root/docker-registry-web/conf/auth.key:/conf/auth.key -v /root/docker-registry-web/db:/data -it -p 8081:8080 --link registry-srv --restart=always --name registry-web hyper/docker-registry-web

4.WEB 访问修改 admin 用户权限

账号 admin 密码 admin

手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)

点击, “admin” 用户名,添加上删除和写的权限

5.配置本机使用私有仓库

[root@node1 ~]# echo   '{ "insecure-registries":["registry-srv:5000"] }' >/etc/docker/daemon.json [root@node1 ~]# systemctl  restart docker        #重启docker[root@node1 ~]# docker start  $(docker ps -a -q)   #启动容器

6.上传镜像到 docker registry

[root@node1 ~]# docker login registry-srv:5000 -u'admin' -p'admin'    #登录私有仓库[root@node1 ~]# docker tag 177391bcf802  registry-srv:5000/registry:2.6.2[root@node1 ~]# docker push  registry-srv:5000/registry:2.6.2

手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)

手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)

  1. kubernetes 配置 secret 拉取私仓镜像
    #创建证书[root@node1 ~]#  kubectl create secret docker-registry regsecret --docker-server=registry-srv:5000 --docker-username=admin --docker-password=admin --docker-email=admin@example.com

    手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)

    [root@node1 ~]# cat k8s/yaml/busybox.yaml apiVersion: v1kind: Podmetadata:name: busyboxnamespace: defaultspec:containers:- image: registry-srv:5000/busybox:latestcommand:  - ping    - "114.114.114.114"imagePullPolicy: IfNotPresentname: busyboxrestartPolicy: Always  imagePullSecrets:- name: regsecret(红色字体即是,配置镜像拉取,使用该证书)
[root@node1 ~]# kubectl create -f  k8s/yaml/busybox.yaml      #创建容器

手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)

七.Kubernetes Nginx Ingress 安装与使用

用过 kubernetes 的人都知道,kubernetes 的 service 的网络类型有三种:

  • cluertip
  • nodeport
  • loadbanlance
    如果一个 service 想向外部暴露服务,有 nodeport 和 loadbanlance 类型。但是 nodeport 类型,你需要知道 service 对应的 pod 所在的 node 的 ip。而 loadbanlance 通常需要第三方云服务商提供支持。如果没有第三方服务商服务的就没办法做了。
    除此之外还有很多其他的替代方式,以下我主要讲解的是通过 ingress 的方式来实现 service的对外服务的暴露。
    镜像地址: (本文会附带所需容器镜像)

registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:0.8.3(ingress controller 的镜像)

registry.cn-hangzhou.aliyuncs.com/google_containers/defaultbackend:1.0 (默认路由的servcie的镜像)

1.默认实例创建:

[root@node1 ingress]# kubectl  create -f default-http-backend.yaml [root@node1 ingress]#  kubectl expose rc default-http-backend --port=80 --target-port=8080  --namespace=kube-system                #重要:为默认实例创建svc

2.ingress-controller 创建

[root@node1 ingress]#  vi    ingress-controller.yamlvalue: http://192.168.0.221:8080              #这里是master API地址                                         #镜像地址建议创建本地容器仓库[root@node1 ingress]# kubectl  create -f ingress-controller.yaml

3.本实验通过 nginx 容器,这里通过 ingress 做入口访问 svc

[root@node1 ingress]# kubectl create -f  ../k8s/nginx-deployment.yaml   #创建nginx容器apiVersion: apps/v1beta2kind: Deploymentmetadata:  name: nginx-deployment spec:  replicas: 3   selector:    matchLabels:       app: nginx  template:    metadata:      labels:         app: nginx    spec:     containers:     - name: nginx       image: 192.168.0.221:5000/nginx:v1       ports:       - containerPort: 80[root@node1 ingress]# kubectl create -f  ../k8s/nginx-service.yaml apiVersion: v1kind: Service metadata:  name: nginx-service   labels:    app: nginx spec:  ports:  - port: 88    targetPort: 80  selector:     app: nginx
[root@node1 ingress]# kubectl create -f  ingress-nginx.yaml apiVersion: extensions/v1beta1kind: Ingressmetadata:  name: nginxservicespec:  rules:  - host: test.info    http:      paths:      - path: /        backend:          serviceName: nginx-service          servicePort: 80

本机写 host 文件进行访问,外部写 host 文件,指向 node ip 即可

手把手教你构建 Kubernetes 1.8 + Flannel 网络(二)

转载于:https://blog.51cto.com/51reboot/2058661

你可能感兴趣的文章
jQuery插件开发1:分页条
查看>>
pycharm调试edx环境搭建
查看>>
11.10/11.11/11.12 安装PHP5 11.13 安装PHP7
查看>>
HQL:实用技术
查看>>
css基本使用
查看>>
使用canvas画圆
查看>>
基础设施ddos防御
查看>>
Django之分页功能实例
查看>>
【机器学习PAI实战】—— 玩转人工智能之利用GAN自动生成二次元头像
查看>>
zookeeper集群的安装和配置
查看>>
tomcat学习笔记之默认连接器
查看>>
基于UDP的服务器和客户端之间的通信
查看>>
Confluence的安装
查看>>
JSPatch的应用
查看>>
[spring/resource/applicationContext-system.xml]: Invocation of init method failed; nested exception
查看>>
Bloom-Filter布隆过滤器
查看>>
磁盘管理二(LVM及磁盘配额)
查看>>
PowerShell DSC(二)拆分配置信息
查看>>
c++ 广义表
查看>>
网络 http服务器-v2-epoll版本
查看>>