此情况针对于pod,service创建时对于namespace指定操作
第一步 创建一个新的namespace,来归档知识点
kubectl create namespace nginx-pro
第二步 创建pod时,将namespace写入metadata下:
cat pod-nginx-pro.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx-pro
name: nginx-pro
namespace: nginx-pro
spec:
replicas: 1
selector:
matchLabels:
app: nginx-pro
strategy: {}
template:
metadata:
labels:
app: nginx-pro
spec:
containers:
- image: nginx
name: nginx
或命令创建
kubectl create -n nginx-pro deployment nginx-pro --image=nginx
第三步 端口暴露至公网
cat service-nginx-pro.yaml
apiVersion: v1
kind: Service
metadata:
creationTimestamp: null
labels:
app: nginx-pro
name: nginx-pro
spec:
ports:
- port: 28888
protocol: TCP
targetPort: 80
selector:
app: nginx-pro
type: LoadBalancer
status:
loadBalancer: {}
或命令创建
kubectl create -n nginx-pro deployment nginx-pro --port 28888 --target-port=80 --type=LoadBalancer
PS:--port 公网访问端口
--target-port pod端口
这里用的是阿里的Kubernetes,故而type为LoadBalancer
第四步 pod指定namespace扩缩容
pod 扩缩容指定namespace操作
#扩容
kubectl scale -n kube-node-lease deployment nginx-deployment-basic --replicas=10
#缩容
kubectl scale -n kube-node-lease deployment nginx-deployment-basic --replicas=5