通过rancher打造云原生应用发布基座

Rancher 2.7.0应用

零、前提条件

0.1 配置内核路由转发

# vim /etc/sysctl.conf
# cat /etc/sysctl.conf
...
net.ipv4.ip_forward=1
# sysctl -p
net.ipv4.ip_forward = 1

0.2 docker-ce安装

所有主机安装docker-ce

# wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# yum -y install docker-ce
# systemctl enable --now docker

0.3 rancher部署

# mkdir -p /opt/data/rancher_data
# docker run -d --privileged -p 80:80 -p 443:443  -v /opt/data/rancher_data:/var/lib/rancher --restart=always --name rancher-2-7-0 rancher/rancher:v2.7.0

一、Rancher初始配置

在这里插入图片描述

二、创建集群

导入现有集群,本次导入的集群版本为k8s 1.25.2

在这里插入图片描述

选择通用导入任意kubernetes集群

在这里插入图片描述

为导入的集群添加名称

在这里插入图片描述

为导入的集群添加标签

在这里插入图片描述

在这里插入图片描述

把已在的集群注册至 rancher

在这里插入图片描述

复制后,在k8s集群中master节点执行相关命令

[root@k8s-master01 ~]# curl --insecure -sfL https://192.168.10.163/v3/import/pg977t2z59g872brkj75qmxtkgkz8x5lrwwpdhkprvmcjhhr7tp6wm_c-m-p7wrqk4w.yaml | kubectl apply -f -

执行后,查看是否添加4个命名空间

[root@k8s-master01 ~]# kubectl get ns
NAME                          STATUS   AGE
calico-apiserver              Active   36h
calico-system                 Active   36h
cattle-fleet-system           Active   60s 新添加
cattle-impersonation-system   Active   77s 新添加
cattle-system                 Active   81s 新添加
default                       Active   36h
kube-node-lease               Active   36h
kube-public                   Active   36h
kube-system                   Active   36h
local                         Active   27s 新添加
tigera-operator               Active   36h

全部执行完成后,可以发现所有k8s集群节点全部注册到rancher

在这里插入图片描述

三、应用发布

选择应用发布的集群

在这里插入图片描述

在这里插入图片描述

3.1 部署Nginx应用

发布应用前,创建项目/命名空间

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

项目/命名空间创建后,选择创建工作负载(类型为Deployments)

在这里插入图片描述

在这里插入图片描述

指定应用发布的命名空间、应用名称、副本数

在这里插入图片描述

指定pod标签

在这里插入图片描述

指定应用所使用的镜像及容器类型(标准容器)

在这里插入图片描述

为应用发布添加端口,即创建相应的服务

在这里插入图片描述

在这里插入图片描述

以上全部配置完成后,点击创建

在这里插入图片描述

观察已创建的应用

在这里插入图片描述

在这里插入图片描述

在物理机访问已经创建的应用

在这里插入图片描述

3.2 部署MySQL应用

在k8s集群中查看已存在的存储类

需要提前准备好持久动态存储类

[root@k8s-master01 ~]# kubectl get sc
NAME                   PROVISIONER      RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
nfs-client (default)   fuseim.pri/ifs   Delete          Immediate           false                  15h

在rancher ui界面中查看
在这里插入图片描述

发布mysql前,创建项目/命名空间

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

创建PVC

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

创建服务

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

一定要注意这个选择器,现在创建,等创建MySQL应用时,其Pod标签要与此保持一致

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

查看已创建SVC

[root@k8s-master01 ~]# kubectl get svc -n mydata1
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)    AGE
mysqldata1   ClusterIP   None         <none>        3306/TCP   49s

解析SVC 对应的IP地址

由于使用了Headless SVC,SVC没有分配ClusterIP,所以没有结果

[root@k8s-master01 ~]# dig -t a mysqldata1.mydata1.svc.cluster.local @10.96.0.10

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> -t a mysqldata1.mydata1.svc.cluster.local @10.96.0.10
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 18405
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;mysqldata1.mydata1.svc.cluster.local. IN A

;; AUTHORITY SECTION:
cluster.local.          30      IN      SOA     ns.dns.cluster.local. hostmaster.cluster.local. 1664333089 7200 1800 86400 30

;; Query time: 0 msec
;; SERVER: 10.96.0.10#53(10.96.0.10)
;; WHEN: 三 9月 28 10:47:03 CST 2022
;; MSG SIZE  rcvd: 158

创建Statefulset类型的应用

在这里插入图片描述

选择与填写对应的名称,服务名称是提前创建的服务

在这里插入图片描述

选择MySQL容器镜像

在这里插入图片描述

添加环境变量

通过环境变量设置MySQL管理员密码及添加至MySQL的数据库

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Pod标签必须与创建的SVC中选择器使用的标签一致

在这里插入图片描述

由于MySQL需要做数据持久化存储,所以需要选择存储,本次使用前面创建的PVC

在这里插入图片描述

在这里插入图片描述

把前面创建PVC挂载至MySQL容器中的/var/lib/mysql目录中

在这里插入图片描述

在这里插入图片描述

观察应用发布情况

在这里插入图片描述

在这里插入图片描述

执行命令观察应用是否可用

在这里插入图片描述

在这里插入图片描述

3.3 部署Wordpress应用

创建项目/命名空间

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

观察命名空间创建情况

[root@k8s-master01 ~]# kubectl get ns
NAME                          STATUS   AGE
calico-apiserver              Active   37h
calico-system                 Active   37h
cattle-fleet-system           Active   59m
cattle-impersonation-system   Active   59m
cattle-system                 Active   59m
default                       Active   37h
kube-node-lease               Active   37h
kube-public                   Active   37h
kube-system                   Active   37h
local                         Active   58m
mydata1                       Active   34m
nginxweb                      Active   50m
tigera-operator               Active   37h
webpp1                        Active   34s  新添加命名空间

发布Deployment对应的应用

在这里插入图片描述

选择Deployment控制器类型

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

添加应用使用的端口,本次使用节点端口发布

在这里插入图片描述

在这里插入图片描述

配置应用所需要的环境变量,通过环境变量连接数据库

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

解析数据库域名,用于环境变量定义

[root@k8s-master01 ~]# dig -t a mysqldata1-0.mysqldata1.mydata1.svc.cluster.local. @10.96.0.10

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> -t a mysqldata1-0.mysqldata1.mydata1.svc.cluster.local. @10.96.0.10
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38690
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;mysqldata1-0.mysqldata1.mydata1.svc.cluster.local. IN A

;; ANSWER SECTION:
mysqldata1-0.mysqldata1.mydata1.svc.cluster.local. 30 IN A 10.224.69.203  解析出来Pod IP地址

;; Query time: 0 msec
;; SERVER: 10.96.0.10#53(10.96.0.10)
;; WHEN: 三 9月 28 11:32:07 CST 2022
;; MSG SIZE  rcvd: 143

在这里插入图片描述

在这里插入图片描述

观察应用创建情况

在这里插入图片描述

在这里插入图片描述

在物理机访问已发布应用

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

四、删除集群

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_47758895/article/details/130599457