[云原生微服务架构](二)试一下运行nginx
一、前言
- Pod:k8s最小单元
- Service:pod每次动态创建后,自动分配的ip会不同,所以引入了service(即服务的注册与发现)
- namespace:命名空间,主要用于隔离
二、部署步骤
1、创建namespace
nginx-namespace.yaml
apiVersion: v1 #类型为Namespace
kind: Namespace #类型为Namespace
metadata:
name: ns-test #命名空间名称
labels:
name: label-test #pod标签
执行
#创建
kubectl create -f nginx-namespace.yaml
#查询
kubectl get namespace
2、创建pod
一般不直接create pod,而是通过controller来创建pod。deployment为其中一种controller
nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: ns-test
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 3
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80
执行
#创建
kubectl create -f nginx-deployment.yaml
#查询
kubectl get deployment -n ns-test
#或
kubectl get pods -n ns-test
================================
$ kubectl create -f nginx-deployment.yaml
# nginx-deployment 部署的2个 pod 全部成功
$ kubectl get pods -o wide -n ns-test
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-deployment-54f57cf6bf-57g8l 1/1 Running 0 23m 10.244.1.10 shuifeng <none> <none>
nginx-deployment-54f57cf6bf-ltdf7 1/1 Running 0 23m 10.244.1.11 shuifeng <none> <none>
nginx-deployment-54f57cf6bf-fgdgg 1/1 Running 0 23m 10.244.1.12 shuifeng <none> <none>
# READY 3/3 表明全部部署成功
$ kubectl get deploy nginx-deployment -n ns-test
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-deployment 3/3 3 3 23m
#此时用自动生成的ip访问
#如 curl http://10.244.1.10
3、创建service
vim nginx-service.yaml
apiVersion: v1
kind: Service
metadata:
namespace: ns-test
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
$ kubectl create -f nginx-service.yaml
$ kubectl get svc nginx-service -o wide -n ns-test
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
nginx-service ClusterIP 10.108.9.49 <none> 80/TCP 11m app=nginx
curl http://10.108.9.49
三、技术笔记
- 如果使用主机ip如果访问
kubectl get svc nginx-service -o wide -n ns-test 查询到对应的主机应对的端口即可通过ip+此端口访问
- kubectl create kubectl apply 区别
当yaml有修改,可以使用apply来使修改后的配置生效
本作品采用《CC 协议》,转载必须注明作者和本文链接