k8s部署dashboard.及反向代理services(十一)
k8s部署dashboard
dashboard就是k8s的图形管理工具,可以查看node、pod、namespace等各种资源
1.准备镜像并上传至私有仓库
[root@k8s-master dashboard]# docker load -i kubernetes-dashboard-amd64_v1.4.1.tar.gz
[root@k8s-master 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
[root@k8s-master 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
2.准备dashboard-deployment yaml文件
[root@k8s-master ~]# mkdir /k8s/dashboard
[root@k8s-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
3.准备dashboard-svc yaml文件
[root@k8s-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端口
4.创建dashoard组件
由于yaml文件中定义了名称空间,因此这里要指定名称空间才能查看对应的资源
真实企业环境也是不同资源对应不同的名称空间
1)创建deployment资源
[root@k8s-master dashboard]# kubectl create -f dashboard.yaml
deployment "kubernetes-dashboard-latest-deploy" created
2)创建svc资源
[root@k8s-master dashboard]# kubectl create -f dashboard_svc.yaml
service "kubernetes-dashboard" created
3)查看资源状态
[root@k8s-master 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
5.页面访问
浏览器输入http://192.168.81.210:8080/ui
6.dashboard操作
创建资源
workloads—deployment—create
默认创建为rc
7.反向代理service
反向代理service就是用master地址去访问pod
不配置nodeport默认是clusterip类型,不配置nodeport就可以用matser地址加上名称空间资源名即可访问到站点内容,即使配置了nodeport也可以使用以上方式来访问
http://master地址:端口/api/v1/proxy/namespaces/命名空间/名称/资源类型/资源名
7.1.准备反向代理目录
[root@k8s-master fxdl]# mkdir /k8s/fxdl
7.2.准备deployment资源yaml文件
[root@k8s-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文件
[root@k8s-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.创建资源
[root@k8s-master fxdl]# kubectl create -f proxy_deploy.yaml
deployment "nginx-proxy" created
[root@k8s-master fxdl]# kubectl create -f proxy_svc.yaml
service "nginx-proxy-svc" created
7.5.查看资源状态
[root@k8s-master fxdl]# kubectl get all -o wide
deployment管理rs,rs管理pod,hpa管理deployment
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:8080 | k8s maste api地址 |
/api | api服务 |
/v1 | api的版本 |
/proxy | 表示代理的意思 |
/namespaces | 使用的namespace是什么 |
/default | 使用的namespace是默认的default |
/services | 资源类型是service |
/nginx-proxy-svc | svc资源的名称 |
目录 返回
首页