16. 部署kuboard
16.1 命令
sudo docker run -d \
--restart=always \
--name=kuboard \
-p 8080:80/tcp \
-p 10081:10081/tcp \
-e KUBOARD_ENDPOINT="http://192.168.1.75:80" \
-e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \
-v /data/kuboard-date:/data \
swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3
- 用户名:admin
- 密码:Kuboard123
16.2 创建集群
-
点击添加集群
-
点击左边以.kubeconfig文件方式添加集群
-
需要把/root/.kube/config文件全部复制进来
#配置文件
root@deploy-harbor:~# cat /root/.kube/config
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURsRENDQW55Z0F3SUJBZ0lVTUV2SXV3UXdTL3lDMXFyUlFpZ1duVjYwRXNJd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1lURUxNQWtHQTFVRUJoTUNRMDR4RVRBUEJnTlZCQWdUQ0VoaGJtZGFhRzkxTVFzd0NRWURWUVFIRXdKWQpVekVNTUFvR0ExVUVDaE1EYXpoek1ROHdEUVlEVlFRTEV3WlRlWE4wWlcweEV6QVJCZ05WQkFNVENtdDFZbVZ5CmJtVjBaWE13SUJjTk1qSXhNVEU1TURZME1qQXdXaGdQTWpFeU1qRXdNall3TmpReU1EQmFNR0V4Q3pBSkJnTlYKQkFZVEFrTk9NUkV3RHdZRFZRUUlFd2hJWVc1bldtaHZkVEVMTUFrR0ExVUVCeE1DV0ZNeEREQUtCZ05WQkFvVApBMnM0Y3pFUE1BMEdBMVVFQ3hNR1UzbHpkR1Z0TVJNd0VRWURWUVFERXdwcmRXSmxjbTVsZEdWek1JSUJJakFOCkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXQ1QkZtZkh4KzhCQXQ1OTg2QnBjV2Z0Q3VYcVoKMzlmMFBNaGhDTXNGVWtjYThjNzFxV3R0b0g4Mmk4UEpxTzdRL1FRbWF0MzdmOEdSZmkxNXd0Z0xBYUtmUXlRdgpGYlZvaks0NDhhNHRtSENtbk0zU1dvWStTU2xmbHMrYXM2cEc4SGVnSmE4WVFvR0d5bmtsb2F3dG0wVEVNcmtPCnd5MG5lbDRMcnl0TTF4QnhXek4wbGsrRlhId1o2NEkrR3JvQ2dvSm91RGtaMTNmcENycjlHUGpRelBpNE1CeVQKeXVaREFLMEE1V3FEcVhxSy9kRVJPb09yVXRoK3ROSHJCNTFqZ0QzQlJFVnZSLytBcG52VFRBM212Ym1UQVdudwo2SGVZZkdtSkpNWDRNZVBCYUIzYjVXa044cWJqckhVVXhXSmZPZG96UG1iQ3FRRmplcWRNVDh4VWZ3SURBUUFCCm8wSXdRREFPQmdOVkhROEJBZjhFQkFNQ0FRWXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QWRCZ05WSFE0RUZnUVUKYk54STNOS05GeERBa1o0eUJWR1RSMmdOL2ZBd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFMSTdNaUxZN0ZQawpzQ0E2b3hBVkxMZWM0Ry9lQ0wxZUJjNVVkcUdDY2RYbXQ0U2RFWTE3WWRKZ2huV1pqNGRSOTVSVFBscWtPS3hYCkI5eCt6SzZYWVVaSlo4aUEvSUtFcHlFMHZYRlBjcmZPaWdzZDdKaEhiUDFuRFpGcEErNy9XaU1DUXlwNXNXRngKTzdmYjdwVko1bnl5RHZEdHNCY0VFYW5NUHhmKzNwZG83NHFBdWowYjNsNHJyU1RjOTdOS0xyekwyQnppaEI3UQpvaGpiSHpuR1lTQkdRU2IvOW5ZU24rRzBVTG50SlFCRU8xbGdTd0RuMzJNNHd4aThUODJ5bldmYUNHaUpMOWg5CkF2U05XRVVhZmF6UDFPVGFydng3N0xnbnA4SUtGejZ2UzJSVUZJSEl4cTJrQnl4SkE4NzhTMnRTWGROWC9SSlIKam9aaXFuRWZxR1U9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
server: https://192.168.1.70:6443
name: cluster1
contexts:
- context:
cluster: cluster1
user: admin
name: context-cluster1
current-context: context-cluster1
kind: Config
preferences: {}
users:
- name: admin
user:
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQxekNDQXIrZ0F3SUJBZ0lVYTQzSmoza0l2MG0rSENlRFNGSFRoK3BidGdVd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1lURUxNQWtHQTFVRUJoTUNRMDR4RVRBUEJnTlZCQWdUQ0VoaGJtZGFhRzkxTVFzd0NRWURWUVFIRXdKWQpVekVNTUFvR0ExVUVDaE1EYXpoek1ROHdEUVlEVlFRTEV3WlRlWE4wWlcweEV6QVJCZ05WQkFNVENtdDFZbVZ5CmJtVjBaWE13SUJjTk1qSXhNVEU1TURZME1qQXdXaGdQTWpBM01qRXhNRFl3TmpReU1EQmFNR2N4Q3pBSkJnTlYKQkFZVEFrTk9NUkV3RHdZRFZRUUlFd2hJWVc1bldtaHZkVEVMTUFrR0ExVUVCeE1DV0ZNeEZ6QVZCZ05WQkFvVApEbk41YzNSbGJUcHRZWE4wWlhKek1ROHdEUVlEVlFRTEV3WlRlWE4wWlcweERqQU1CZ05WQkFNVEJXRmtiV2x1Ck1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBdkt3MXFBYkdDRWNqWW1tSHd1Y3YKa09HUUtOL2dxZVZrQUl3aVBpMkNZUXp6RG8zcktxZjFxeTdTYmVhdWFoT0dOV2R2bXlZSmlBeXJnbFdVd1AxegpzNDZQSWFmV3dUeWQvdnFocWRObHdhWGhNRW5xZXhxMU4vN0toOE5WWHc2cjZMU01aMUtwTkRFV2hvY2g3OXNCCkFKN01TZTZKZ0c2aHd6bGQ5ZmtqbjQvMWxIaTNGS0RDNzQyZkR3NStRaGtHQy9lQi8xczlpK282STYwaTQvK2cKSStlMElYcndncUNyZHUrb2t6dmlaRGF1K29ET1NORHFLeTExN2NoVllXV0o2VHVxRWZ6cUxqNHFsZHpFZmRtOQpvd0xjMzFtc2F1aTRUN013WkNNNGpKWHZMaDdXVjBQcHByUXY3MUJZZmo3T2R0WUFlZGxMajlkS3BFblV0U0VkCkJRSURBUUFCbzM4d2ZUQU9CZ05WSFE4QkFmOEVCQU1DQmFBd0hRWURWUjBsQkJZd0ZBWUlLd1lCQlFVSEF3RUcKQ0NzR0FRVUZCd01DTUF3R0ExVWRFd0VCL3dRQ01BQXdIUVlEVlIwT0JCWUVGTG85NlhNL3dBcUhRVWlvamFTZgpLTjVkSTRkaU1COEdBMVVkSXdRWU1CYUFGR3pjU056U2pSY1F3SkdlTWdWUmswZG9EZjN3TUEwR0NTcUdTSWIzCkRRRUJDd1VBQTRJQkFRQ1Z2a1ZESURzc09RNmd4WDhCVWxlQ1JpektlZ0J6S2xXOTA5SDhBRDhySUkzU3BLQWQKKys5SXpjUnpaYXFzMlZYN2ZvZFlrNzI2MXd5NDhMUDZlSmZNMWFIQ0paajk4SWF4dXl5UWhyclJUamJ4K2JGawpPYm1ZSzFPaDJkUHdsSEo2aisvajNCZ2NsOVpITHNNUUl4VVhtQXYxS3dGWHNLVGlaRXNYc21KOHl0ZG9OR3Z0CnFEZG56ejlyNGJUM1V5aDRRZ1pCRGRjVEVwTFplbHB6UzFxd0ZhRzZBQ2JTazgxTmI0Tis3Tm0xaWw1elJtVFEKMGlqMTBucCtVKzk4YzBCSTJma0RQcWI3ckZEY3FPSG5kUTZxdHJIdjdJZFhvQkpCUEQ1MXkvTTFXTzYyUjlTQgpHVnhZdDRZSzlQd1U3V1g4aXZtVGhqb0szUDJadGJXM2NlUlkKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb2dJQkFBS0NBUUVBdkt3MXFBYkdDRWNqWW1tSHd1Y3ZrT0dRS04vZ3FlVmtBSXdpUGkyQ1lRenpEbzNyCktxZjFxeTdTYmVhdWFoT0dOV2R2bXlZSmlBeXJnbFdVd1AxenM0NlBJYWZXd1R5ZC92cWhxZE5sd2FYaE1FbnEKZXhxMU4vN0toOE5WWHc2cjZMU01aMUtwTkRFV2hvY2g3OXNCQUo3TVNlNkpnRzZod3psZDlma2puNC8xbEhpMwpGS0RDNzQyZkR3NStRaGtHQy9lQi8xczlpK282STYwaTQvK2dJK2UwSVhyd2dxQ3JkdStva3p2aVpEYXUrb0RPClNORHFLeTExN2NoVllXV0o2VHVxRWZ6cUxqNHFsZHpFZmRtOW93TGMzMW1zYXVpNFQ3TXdaQ000akpYdkxoN1cKVjBQcHByUXY3MUJZZmo3T2R0WUFlZGxMajlkS3BFblV0U0VkQlFJREFRQUJBb0lCQUFYdU05R1FSUEZGcXlzUQp2aCsyUEp5Rk9vN09XclY4YkdSSUExdUkrcXdxU0FtUkZHOUcwRVlOTnJnVnBDM1paMEtPZWNlYXJub0VTKy9RCjJOZ29IMWJwaUQ0NmxGbUdta0RGaUFkYWlieElob2VLQzBETFdoN2tkMkZGRm8zaVhDejRYK0Z2aTdvRVFQMEIKaW1PTHNzQmVQWFdsZGRUL3BUNEpzNVpqdW1idGhaNHRHVGlqSVU1S05iZGNxSlk4WGdXNzVscGk0dkNWRzVaVwp1Q1FNaVM4ZTBCQXlPeFJkSnNMSTIvUVU3b3V5Y3Z1WG91cUgvQk5pTEliS1k5d3VRcnhWM0ZvS0YzdkNzVXkyClZnZVVKdkdYeWpQQ3F5MkRLZ3ViWVlFL0NpdVpMZDRUdEZuWmRtVE1SVVk2OWJJWFJCYVFFOWIycEZWQ1hPMDQKYjBsN3hvRUNnWUVBeUNhVllwdzNjOTZ1WTdlcmlLVWl1Yi81RHdlNmZLenhsN3ArSUc4OUV6Z0E3TjQvN21HSwp1S2gxbXFQRXAxRlBFcHptV0tDU0M3c3ZraEZjV2h0NjBBbXFsVHArTk9BNzQ3Nnc5MGExQ2RETnBSM1pialhLCnhySGZiYllabWc4S1A1QTU4ellZS3dueURaazZWd0NTdGJOeGhtdG5tM0oyaUQ0Q21ycVJJTjBDZ1lFQThWRzIKcXI5emdaZWtreUZuNzhrVmxSdUpuMnZLMTA1UUdjZlhOczJuamZWWXRud2NSMlltOVV6SXdFWFpVOW1kdFhhaApHMm8vQ3NHN1NxTmtNaUZkc0Jza29ZZW9SamxibnVZaEJhVTV3NExVenUwaTdDcGpHQXVCbWxaN2hrMW90UzFiClk2NmRqQ0FueDQ0NlRXb3FsVTRQTFNDSEptOFA5YWE2L0JuKzFra0NnWUEzUHo4NDZ2bjdoOW9IT0dtbTNENUwKbTR2NTlCNHJ6K2tZQXFoUjk2S2FMWGxENk0wbzFjL2V6TkU1a0Q3MkdHR0ZONzMxZE0wYlk5M3JxZE1lSkR1dwpOUnJhK2p4Z0NBMC8vaUVIQUlOMFpDaC9qVSs1Tml2MDBLQmx2a0F1NER2cDg3dXJRS0ZITUFXYWIxTkZOS2xLCmNtL0J0Ti95YnBQOVkzQ0FtVUw2R1FLQmdGVmdCWEl2UFp3eG5DWDVnWjRSMURMbWhUQURvTVcvalJNeDRuQWYKSGhKWkpNT2E4UjVKZzZyeE9XemN5V0NpOHVyS1I0RTllNFJBdWhSVDdoVFdQU0VhMlVEVWo3SVloTk9ZczBJZQpER3VoRTgwSmxIdGRHNlhjSEVRUUtLK0JIM1JKMGJWWWg2Q1ZsNzFBRWx4bEhSK3BlREVNK3dPYjgxZURYMC9sCm1vVVJBb0dBQWdBYUlTdm9IZjZJWDBQRHlJNS9zWUc5c2tqQ282TWE3cEpxTGRwMjZzMlozU1puRDR3RVBLSk0KYnBZOG5odmtPZHZpaGtjVHk4NGp6Y3ZuSVJ4dndIaDZEMlZzcUkvaWlnUVpnN1ZOb3ZVRVdjcUlrcEVxQnpObgpCYWp6U1RLRzRNSUxBQ21kaHA0UXFDWUpLMHdlVTI5NEpxaG9DYVhWMXhoM2g1cUJnRms9Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==
-
填充信息
-
选择用户管理
-
查看集群
17. 前后端分离
17.1 nginx
root@deploy-harbor:~/nginx-tomcat-case# cat nginx.yaml
kind: Deployment
#apiVersion: extensions/v1beta1
apiVersion: apps/v1
metadata:
labels:
app: linux70-nginx-deployment-label
name: linux70-nginx-deployment
namespace: myserver
spec:
replicas: 1
selector:
matchLabels:
app: linux70-nginx-selector
template:
metadata:
labels:
app: linux70-nginx-selector
spec:
containers:
- name: linux70-nginx-container
image: nginx:1.20
#command: ["/apps/tomcat/bin/run_tomcat.sh"]
#imagePullPolicy: IfNotPresent
imagePullPolicy: Always
ports:
- containerPort: 80
protocol: TCP
name: http
- containerPort: 443
protocol: TCP
name: https
env:
- name: "password"
value: "123456"
- name: "age"
value: "18"
# resources:
# limits:
# cpu: 2
# memory: 2Gi
# requests:
# cpu: 500m
# memory: 1Gi
---
kind: Service
apiVersion: v1
metadata:
labels:
app: linux70-nginx-service-label
name: linux70-nginx-service
namespace: myserver
spec:
type: NodePort
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
nodePort: 30004
- name: https
port: 443
protocol: TCP
targetPort: 443
nodePort: 30443
selector:
app: linux70-nginx-selector
17.2 tomcat
root@deploy-harbor:~/nginx-tomcat-case# cat tomcat.yaml
kind: Deployment
#apiVersion: extensions/v1beta1
apiVersion: apps/v1
metadata:
labels:
app: linux60-tomcat-app1-deployment-label
name: linux60-tomcat-app1-deployment
namespace: myserver
spec:
replicas: 1
selector:
matchLabels:
app: linux60-tomcat-app1-selector
template:
metadata:
labels:
app: linux60-tomcat-app1-selector
spec:
containers:
- name: linux60-tomcat-app1-container
image: tomcat:7.0.109-jdk8-openjdk
#command: ["/apps/tomcat/bin/run_tomcat.sh"]
#imagePullPolicy: IfNotPresent
imagePullPolicy: Always
ports:
- containerPort: 8080
protocol: TCP
name: http
env:
- name: "password"
value: "123456"
- name: "age"
value: "18"
# resources:
# limits:
# cpu: 2
# memory: 2Gi
# requests:
# cpu: 500m
# memory: 1Gi
---
kind: Service
apiVersion: v1
metadata:
labels:
app: linux60-tomcat-app1-service-label
name: linux60-tomcat-app1-service
namespace: myserver
spec:
type: NodePort
ports:
- name: http
port: 80
protocol: TCP
targetPort: 8080
# nodePort: 30006
selector:
app: linux60-tomcat-app1-selector
#先把这个nodePort端口打开 然后去页面访问
17.3 设置页面 tomcat
-
访问tomcat 因为没有index.jsp页面
-
添加tomcat index页面
cd webapps
mkdir myapp
echo 'myapp time 70 sync' > myapp/index.jsp
17.5 设置代理 nginx
- nginx配置
cat default.conf
server {
listen 80;
listen [::]:80;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location /myapp {
proxy_pass http://linux60-tomcat-app1-service;
}
}
- 测试
root@linux70:/etc/nginx/conf.d# nginx -s reload
2022/11/23 07:48:45 [notice] 1632#1632: signal process started
root@linux70:/etc/nginx/conf.d# curl http://linux60-tomcat-app1-service/myapp/index.jsp
myapp time 70 sync