使用的yaml文件
# kuboard.yaml
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: kuboard-data
namespace: kuboard
spec:
storageClassName: csi-rbd-sc
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: Service
metadata:
name: kuboard
namespace: kuboard
spec:
selector:
app: kuboard
type: ClusterIP
ports:
- name: web
protocol: TCP
port: 80
targetPort: 80
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: kuboard
namespace: kuboard
labels:
app: kuboard
spec:
replicas: 1
selector:
matchLabels:
app: kuboard
template:
metadata:
labels:
app: kuboard
spec:
containers:
- name: kuboard
image: eipwork/kuboard:v3
ports:
- containerPort: 80
volumeMounts:
- name: kuboard-data
mountPath: /data
volumes:
- name: kuboard-data
persistentVolumeClaim:
claimName: kuboard-data
创建名称空间
kubectl create ns kuboard
应用yaml文件
kubectl apply -f kuboard.yaml
查看Pod
[root@node1 kuboard]# kubectl get pods -n kuboard
NAME READY STATUS RESTARTS AGE
kuboard-0 1/1 Running 0 2m48s
metrics-scraper-57444654f4-c9ksr 1/1 Running 4 (32h ago) 14d
查看service
[root@node1 kuboard]# kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
csi-metrics-rbdplugin ClusterIP 10.96.136.32 <none> 8080/TCP 2d10h
csi-rbdplugin-provisioner ClusterIP 10.96.74.200 <none> 8080/TCP 2d10h
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 15d
loki ClusterIP 10.96.9.178 <none> 3100/TCP,9095/TCP 14d
loki-memberlist ClusterIP None <none> 7946/TCP 14d
使用Istio暴露服务
创建Gateway
# kuboard-gateway.yaml
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
name: kuboard-gateway
namespace: istio-system
spec:
selector:
app: istio-ingressgateway
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "kuboard.myk8s.cn"
应用yaml文件
[root@node1 kuboard]# kubectl apply -f kuboard-gateway.yaml
gateway.networking.istio.io/kuboard-gateway created
创建VirtualService
# kuboard-virtualservice.yaml
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: kuboard-virtualservice
namespace: kuboard
spec:
hosts:
- "kuboard.myk8s.cn"
gateways:
- istio-system/kuboard-gateway
http:
- match:
- uri:
prefix: /
route:
- destination:
host: kuboard
port:
number: 80
应用yaml文件
[root@node1 kuboard]# kubectl apply -f kuboard-virtualservice.yaml
virtualservice.networking.istio.io/kuboard-virtualservice created
访问web界面
查看istio ingressgateway的external-ip
[root@node1 jumpserver]# kubectl get service -n istio-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
grafana ClusterIP 10.96.234.93 <none> 3000/TCP 13d
istio-egressgateway ClusterIP 10.96.24.219 <none> 80/TCP,443/TCP 14d
istio-ingressgateway LoadBalancer 10.96.174.147 192.168.0.111,192.168.0.222 15021:31848/TCP,80:31657/TCP,20001:31775/TCP,443:30425/TCP,31400:31780/TCP,15443:30671/TCP 14d
istiod ClusterIP 10.96.49.69 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 14d
jaeger-collector ClusterIP 10.96.63.79 <none> 14268/TCP,14250/TCP,9411/TCP,4317/TCP,4318/TCP 13d
kiali ClusterIP 10.96.202.30 <none> 20001/TCP,9090/TCP 13d
loki-headless ClusterIP None <none> 3100/TCP 13d
prometheus ClusterIP 10.96.109.177 <none> 9090/TCP 13d
tracing ClusterIP 10.96.141.120 <none> 80/TCP,16685/TCP 13d
zipkin ClusterIP 10.96.225.164 <none> 9411/TCP 13d
在需要访问jumpserver服务的主机上修改hosts,将kuboard.myk8s.cn解析为external-ip地址,这里解析为192.168.0.111
浏览器输入 kuboard.myk8s.cn
- 默认用户名:admin
- 默认密码:Kuboard123
添加集群
# 查看~/.kube/config文件内容,然后将内容输入页面中,点击确定
cat ~/.kube/config