基础命令:
k8s命名空间 namespace
k8s 查看pod
kubectl get pod -n namespace k8s宕机,无法启动,查看报错
k8s查看pv
kubectl get pv\pvc
journalctl -u kubelet -e
实战:
k8s挂载前端工程
1、创建pvc、pv 让磁盘共享,这样不管哪个机器都能共享读取静态文件,把文件放到挂载盘,同时做目录映射
# -----csdn 原创小小大D-------
apiVersion: v1
kind: PersistentVolume
metadata:
name: app-admin-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Delete
storageClassName: admin-storage
local:
path: /home/app/app-admin/manager
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- k8s-node-1-210
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: app-admin-pvc
namespace: app
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
storageClassName: admin-storage
2、创建服务和pod节点
# -----csdn 原创小小大D-------
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-admin
namespace: app
spec:
replicas: 1
selector:
matchLabels:
app: app-admin
template:
metadata:
labels:
app: app-admin
spec:
containers:
- name: app-admin
image: nginx:1.17
ports:
- containerPort: 9003
volumeMounts:
- name: static-volume
mountPath: /www/manager # 容器中的挂载路径
- name: app-admin-conf
mountPath: /etc/nginx/nginx.conf # 容器中的挂载路径
subPath: nginx.conf
volumes:
- name: static-volume
persistentVolumeClaim:
claimName: app-admin-pvc
- name: app-admin-conf
configMap:
name: app-admin-conf
---
apiVersion: v1
kind: Service
metadata:
name: app-admin
namespace: app
spec:
ports:
- name: app-admin
port: 9003
selector:
app: app-admin
---
apiVersion: v1
kind: ConfigMap
metadata:
name: app-admin-conf
namespace: app
data:
nginx.conf: |
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
client_max_body_size 50m;
sendfile on;
keepalive_timeout 65;
server {
listen 9003;
server_name localhost;
root /www;
location / {
index index.html index.htm;
}
}
}
3、对外访问
k8s 挂载tls
# -----csdn 原创小小大D-------
kubectl create secret tls app.cn-tls \
--namespace app\
--key ./app.cn.key \
--cert ./app.cn.crt
4、挂载ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
namespace: app
name: app.cn
spec:
ingressClassName: nginx
defaultBackend:
service:
name: app-admin
port:
number: 9003
rules:
- host: app.cn #--换实际域名
http:
paths:
- backend:
service:
name: app-admin
port:
number: 9003
path: /manager
pathType: Prefix
tls:
- hosts:
- app.cn #--换实际域名
secretName: app.cn-tls