kuboard
- 安装kuboard
kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml
- 查看kuboard安装结果
kubectl get pods -n kuboard -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kuboard-etcd-g9fp7 1/1 Running 0 109s 172.24.253.248 k8s-master <none> <none>
kuboard-questdb-59ddfb5c77-9qrdx 1/1 Running 0 41s 192.168.235.194 k8s-master <none> <none>
kuboard-v3-77b9c79bdf-cxwgz 1/1 Running 0 109s 192.168.235.193 k8s-master <none> <none>
- 访问kuboard
- 地址:http://your-node-ip-address:30080
- 账号/密码:admin/Kuboard123
wordpress + mysql
image都是官方的,使用NodePort方式暴露端口来供外部访问
- 创建namespace
kubectl create namespace wordpress
- 编写mysql的yaml文件
vim wordpress-db.yaml
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: mysql-deploy
namespace: wordpress
labels:
app: mysql
spec:
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:5.6
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3306
name: dbport
env:
- name: MYSQL_ROOT_PASSWORD
value: rootPassW0rd
- name: MYSQL_DATABASE
value: wordpress
- name: MYSQL_USER
value: wordpress
- name: MYSQL_PASSWORD
value: wordpress
volumeMounts:
- name: db
mountPath: /var/lib/mysql
volumes:
- name: db
hostPath:
path: /var/lib/mysql
---
apiVersion: v1
kind: Service
metadata:
name: mysql
namespace: wordpress
spec:
selector:
app: mysql
ports:
- name: mysqlport
protocol: TCP
port: 3306
targetPort: dbport
- 部署yaml文件
kubectl apply -f wordpress-db.yaml
- 查看wordpress命名空间下创建的pod资源
kubectl get pods -n wordpress -o wide
- 编写wordpress的yaml文件
vim wordpress.yaml
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: wordpress-deploy
namespace: wordpress
labels:
app: wordpress
spec:
template:
metadata:
labels:
app: wordpress
spec:
containers:
- name: wordpress
image: wordpress
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
name: wdport
# 这里修改成mysql的pod的访问地址,账号和密码
env:
- name: WORDPRESS_DB_HOST
# 这里是mysql的pod外面的service的IP地址,不是mysql的pod的IP地址
value: 10.105.38.153:3306
# 这里也可以使用service的名称
# value: mysql:3306
- name: WORDPRESS_DB_USER
value: wordpress
- name: WORDPRESS_DB_PASSWORD
value: wordpress
---
apiVersion: v1
kind: Service
metadata:
name: wordpress
namespace: wordpress
spec:
# NodePort类型的service会在node上都暴露端口给外部访问
type: NodePort
selector:
app: wordpress
ports:
- name: wordpressport
protocol: TCP
port: 80
targetPort: wdport
- 查看wordpress这个namespace下面的service的详情信息
kubectl get svc -n wordpress -o wide
- 查看wordpress这个namespace下面的pod的详情信息
kubectl get pods -n wordpress -o wide
- 访问集群中部署了wordpress这个pod的node的外网访问IP和对外暴露的端口,即可访问wordpress
访问地址:http://121.40.226.50:31805/
如果是阿里云ECS需要开通端口的访问IP白名单
Spring Boot项目
image是自己的,使用Ingress来供外部访问
- 创建namespace
kubectl create namespace springboot-demo
- 使用maven命令打包springboot项目
mvn clean package -Dmaven.test.skip=true
- 将打包生成的jar文件上传到服务器上
- 创建Dockerfile
vim Dockerfile
FROM openjdk:8-jre-alpine
COPY springboot-demo-0.0.1-SNAPSHOT.jar /springboot-demo.jar
ENTRYPOINT ["java","-jar","/springboot-demo.jar"]
- 构建Dockerfile,创建image
docker build -t springboot-demo-image .
- 把image上传到阿里云镜像仓库
docker tag springboot-demo-image registry-vpc.cn-hangzhou.aliyuncs.com/djflying/springboot-demo-image:v1.0
docker login --username=djflying1988@163.com registry-vpc.cn-hangzhou.aliyuncs.com
docker push registry-vpc.cn-hangzhou.aliyuncs.com/djflying/springboot-demo-image:v1.0
- 创建springboot的yaml文件
vim springboot-demo.yaml
# 以Deployment部署Pod
apiVersion: apps/v1
kind: Deployment
metadata:
name: springboot-demo
namespace: springboot-demo
spec:
selector:
matchLabels:
app: springboot-demo
replicas: 1
template:
metadata:
labels:
app: springboot-demo
spec:
containers:
- name: springboot-demo
image: registry-vpc.cn-hangzhou.aliyuncs.com/djflying/springboot-demo-image:v1.0
ports:
- containerPort: 8080
---
# 创建Pod的Service
apiVersion: v1
kind: Service
metadata:
name: springboot-demo
namespace: springboot-demo
spec:
ports:
- port: 80
protocol: TCP
targetPort: 8080
selector:
app: springboot-demo
---
# 创建Ingress,定义访问规则,一定要记得提前创建好nginx ingress controller
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: springboot-demo
namespace: springboot-demo
spec:
rules:
- host: springboot-demo.djflying.top
http:
paths:
- path: /
backend:
serviceName: springboot-demo
servicePort: 80
- 部署yaml文件
kubectl apply -f springboot-demo.yaml
- 查看springboot-demo这个namespace下面的pod的详情信息
kubectl get pods -n springboot-demo -o wide
评论区