k8s部署dashboard.及反向代理services(十一)

作者:神秘网友 发布时间:2020-10-23 23:54:29

k8s部署dashboard.及反向代理services(十一)

k8s部署dashboard.及反向代理services(十一)

k8s部署dashboard

dashboard就是k8s的图形管理工具,可以查看node、pod、namespace等各种资源

[[email protected] dashboard]# docker load -i kubernetes-dashboard-amd64_v1.4.1.tar.gz 
[[email protected] dashboard]# docker tag index.tenxcloud.com/google_containers/kubernetes-dashboard-amd64:v1.4.1 192.168.81.240/k8s/kubernetes-dashboard-amd64:v1.4.1
[[email protected] dashboard]# docker push 192.168.81.240/k8s/kubernetes-dashboard-amd64:v1.4.1
The push refers to a repository [192.168.81.240/k8s/kubernetes-dashboard-amd64]
5f70bf18a086: Mounted from k8s/tomcat-app 
2e350fa8cbdf: Pushed 
v1.4.1: digest: sha256:e446d645ff6e6b3147205c58258c2fb431105dc46998e4d742957623bf028014 size: 1147
[[email protected]-master ~]# mkdir /k8s/dashboard
[[email protected]8s-master dashboard]# vim dashboard.yaml 
apiVersion: extensions/v1beta1					#api版本
kind: Deployment			#资源类型
metadata:
  name: kubernetes-dashboard-latest-deploy		#资源名称
  namespace: kube-system			#名称空间,不同业务对应不同的命名空间
spec:
  replicas: 1			#pod数量
  template:
    metadata:
      labels:
        k8s-app: kubernetes-dashboard		#标签
        version: latest			#版本
        kubernetes.io/cluster-service: "true"
    spec:
      containers:
      - name: kubernetes-dashboard		#容器名称
        image: 192.168.81.240/k8s/kubernetes-dashboard-amd64:v1.4.1		#镜像地址
        resources:
          limits:
            cpu: 100m			#CPU最大限制
            memory: 50Mi		#内存最大限制
          requests:
            cpu: 100m			#CPU最小限制
            memory: 50Mi			#内存最小限制
        ports:
        - containerPort: 9090		#容器端口
        args:
          - --apiserver-host=http://192.168.81.210:8080   #与api进行关联
        livenessProbe:				#资源检测
          httpGet:
            path: /				#首页
            port: 9090		#端口
          initialDelaySeconds: 30
          timeoutSeconds: 30
[[email protected]-master dashboard]# vim dashboard_svc.yaml 
apiVersion: v1			#api版本
kind: Service		#资源类型
metadata:
  name: kubernetes-dashboard-svc		#资源名称
  namespace: kube-system				#名称空间
  labels:
    k8s-app: kubernetes-dashboard			#与deployment关联的标签
    kubernetes.io/cluster-service: "true"
spec:
  selector:
    k8s-app: kubernetes-dashboard			#标签关联
  ports:
  - port: 80					#虚拟ip端口
    targetPort: 9090			#pod端口

由于yaml文件中定义了名称空间,因此这里要指定名称空间才能查看对应的资源

真实企业环境也是不同资源对应不同的名称空间

1)创建deployment资源
[[email protected] dashboard]# kubectl create -f dashboard.yaml 
deployment "kubernetes-dashboard-latest-deploy" created

2)创建svc资源
[[email protected] dashboard]# kubectl create -f dashboard_svc.yaml 
service "kubernetes-dashboard" created

3)查看资源状态
[[email protected] dashboard]# kubectl get all --namespace=kube-system -o wide
NAME                                        DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deploy/kubernetes-dashboard-latest-deploy   1         1         1            1           19s

NAME                       CLUSTER-IP    EXTERNAL-IP   PORT(S)   AGE       SELECTOR
svc/kubernetes-dashboard   10.254.72.0   <none>        80/TCP    14s       k8s-app=kubernetes-dashboard

NAME                                               DESIRED   CURRENT   READY     AGE       CONTAINER(S)           IMAGE(S)                                               SELECTOR
rs/kubernetes-dashboard-latest-deploy-3050469117   1         1         1         19s       kubernetes-dashboard   192.168.81.240/k8s/kubernetes-dashboard-amd64:v1.4.1   k8s-app=kubernetes-dashboard,kubernetes.io/cluster-service=true,pod-template-hash=3050469117,version=latest

NAME                                                     READY     STATUS    RESTARTS   AGE       IP            NODE
po/kubernetes-dashboard-latest-deploy-3050469117-5mknc   1/1       Running   0          19s       172.16.54.2   192.168.81.230


kubectl get pod --namespace=kube-system -o wide
kubectl get svc --namespace=kube-system -o wide
kubectl get deployment --namespace=kube-system -o wide

k8s部署dashboard.及反向代理services(十一)

浏览器输入http://192.168.81.210:8080/ui

k8s部署dashboard.及反向代理services(十一)

创建资源

workloads—deployment—create

k8s部署dashboard.及反向代理services(十一)

k8s部署dashboard.及反向代理services(十一)

默认创建为rc

k8s部署dashboard.及反向代理services(十一)

反向代理service就是用master地址去访问pod

不配置nodeport默认是clusterip类型,不配置nodeport就可以用matser地址加上名称空间资源名即可访问到站点内容,即使配置了nodeport也可以使用以上方式来访问

http://master地址:端口/api/v1/proxy/namespaces/命名空间/名称/资源类型/资源名

7.1.准备反向代理目录

[[email protected] fxdl]# mkdir /k8s/fxdl

7.2.准备deployment资源yaml文件

[[email protected]-master fxdl]# vim proxy_deploy.yaml 
apiVersion: extensions/v1beta1			#api版本
kind: Deployment			#资源类型
metadata:		
  name: nginx-proxy			#资源名称
spec:
  replicas: 3				#启动的pod数量
  template:
    metadata:
      labels:
        app: nginx-proxy		#标签
    spec:
      containers:
      - name: nginx				#容器名
        image: 192.168.81.240/k8s/nginx:1.13		#镜像地址
        ports:
        - containerPort: 80			#端口

7.3.准备svc资源yaml文件

[[email protected]-master fxdl]# vim proxy_svc.yaml 
apiVersion: v1				#api版本
kind: Service					#资源类型
metadata:
  name: nginx-proxy-svc			#资源名称
spec:
  selector:
    app: nginx-proxy			#标签,与deployment的标签进行关联
  ports:
  - port: 888					#虚拟ip,clusterip的端口,可以自己定义
    targetPort: 80			#pod端口,应用的端口,nginx容器默认是80

7.4.创建资源

[[email protected] fxdl]# kubectl create -f proxy_deploy.yaml 
deployment "nginx-proxy" created
   
[[email protected] fxdl]# kubectl create -f proxy_svc.yaml 
service "nginx-proxy-svc" created

7.5.查看资源状态

[[email protected] fxdl]# kubectl get all -o wide

deployment管理rs,rs管理pod,hpa管理deployment

k8s部署dashboard.及反向代理services(十一)

7.6.用master访问资源

浏览器访问:http://192.168.81.210:8080/api/v1/proxy/namespaces/default/services/nginx-proxy-svc/

http://192.168.81.210:8080/api/v1/proxy/namespaces/kube-system/services/kubernetes-dashboard

dashboard用的namespace是kube-system

链接目录含义
http://192.168.81.210:8080k8s maste api地址
/apiapi服务
/v1api的版本
/proxy表示代理的意思
/namespaces使用的namespace是什么
/default使用的namespace是默认的default
/services资源类型是service
/nginx-proxy-svcsvc资源的名称

k8s部署dashboard.及反向代理services(十一)相关教程

  1. SpringBoot2.0整合热部署Devtools工具

    SpringBoot2.0整合热部署Devtools工具 热部署原理分析: 使用类加载器(classloader重新读取字节码文件到jvm内存)如何纯手写一个热部署功能: 1.监听class文件是否有发生改变–版本号或者修改时间 2.如果class文件发生改变的,就是用classloader进行重新读

  2. k8s集成Jenkins实现项目自动上线

    k8s集成Jenkins实现项目自动上线 k8s对接Jenkins 1.开发还是一样的写java代码,写好java代码后提交到gitlab仓库中,Jenkins在通过gitlab去拉取这些代码,开发只需要在Jenkins页面上点一下立即构建,就会调用shell命令将代码通过docker build 来构建镜像。2.do

  3. k8s使用glusterfs做持久化存储(十三)

    k8s使用glusterfs做持久化存储(十三) k8s使用glusterfs存储 [[emailprotected] ~]# kubectl explain pv.spec语法格式kubectl explain 资源.命令.命令 1)编写yaml文件[[emailprotected] ~]# mkdir /k8s/glusterfs[[emailprotected] ~]# cd /k8s/glusterfs[[e

  4. Solr部署教程

    Solr部署教程 前提环境: jdk1.8 下载:https://archive.apache.org/dist/lucene/solr/5.2.1/ 解压缩,重命名 tar -zxvf solr-5.2.1.tar.gz mv solr-5.2.1 solr 修改配置文件: vi solr.in.sh----------ZK_HOST=ha1:2181,ha2:2181,ha3:2181,ha4:2181SOLR_HOST=h

  5. jenkins 自动化部署(后台)

    jenkins 自动化部署(后台) 包的话需要自己到官网下载https://www.jenkins.io/download/ 安装jenkins rpm -ivh jenkins-2.190.3-1.1.noarch.rpm 修改Jenkins配置 vim /etc/sysconfig/jenkins 修改内容如下: JENKINS_USER=root JENKINS_PORT=10008 启动Jenki

  6. idea热部署插件JRebel安装部署并激活,告别spring devtools

    idea热部署插件JRebel安装部署并激活,告别spring devtools 打开idea的File-settings-plugins-marketplace-搜索JRebel 点击Install安装,我已经安装了,所以显示的是Installed. 安装完成之后重启idea,一般idea插件安装完之后这个位置有个restart重启按钮 重启

  7. Atlas安装部署

    Atlas安装部署 环境要求: JDK8+Hadoop2+Maven3+Zookeeper3+Hbase2+Solr5 这些组件都要安装。 下载:http://atlas.apache.org/#/Downloads 不要下载最新版的,否则编译会出问题,下载稳定版的。 编译 上传,解压,编译。 tar -zxvf apache-atlas-2.0.0-source

  8. k8s1.18三节点集群部署+docker容器安装

    k8s1.18三节点集群部署+docker容器安装 k8s1.18三节点+docker容器安装 建三台虚拟机,三台虚拟机的信息如下: 注:建议IP地址是自己配的静态地址,因为动态的话改变网络地址就会改变,要重新配置(静态ip配置可参考https://blog.csdn.net/weixin_44764814/art