Kubernetes 部署 Nginx 实现外部访问

1. 准备 k8s 环境

[root@master yaml]# kubectl get nodes   ##两个节点均为Ready状态
NAME     STATUS   ROLES    AGE    VERSION
master   Ready    master   3d8h   v1.18.1
node     Ready    <none>   3d8h   v1.18.1

2. 检查主机是否存在 Nginx 镜像

[root@master cicd]# docker images |grep nginx
nginx latest 992e3b7be046...

3. 编写 pod 部署模板 nginx-pod.yaml

[root@master yaml]# cat nginx-pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod ##pod名称
  labels:
    app: nginx   ###写上这个pod的标签,方便svc连接
spec:
  containers:
  - name: nginx-pod	##pod容器名称
    image: nginx:latest	###镜像
    imagePullPolicy: IfNotPresent ###镜像拉取策略
    ports:
    - containerPort: 80		###容器端口

4. 编写 service 部署模板文件 nginx-svc.yaml

[root@master yaml]# cat nginx-svc.yaml 
apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
spec:
  selector:
    app: nginx			###关联容器标签
  ports:
  - port: 80			###容器端口
    nodePort: 30002		 ###nodeport映射为30002端口,便于外部主机访问
  type: NodePort		 ###svc类型为nodeport

5. kubectl 执行模板文件

[root@master yaml]# kubectl apply -f nginx-pod.yaml 
pod/nginx-pod created
[root@master yaml]# kubectl apply -f nginx-svc.yaml 
service/nginx-svc created
[root@master yaml]# kubectl get pod
NAME        READY   STATUS    RESTARTS   AGE
mall        5/5     Running   0          8h
nginx-pod   1/1     Running   0          90s
[root@master yaml]# kubectl get svc
NAME             TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes       ClusterIP   10.96.0.1       <none>        443/TCP        3d8h
nginx-svc        NodePort    10.111.24.115   <none>        80:30002/TCP   23s

6.  浏览器访问 ip:30002
在这里插入图片描述

在测试部署 k8s 环境后,测试创建容器环境,执行创建命令后,提示 deployment 创建成功,但是在查看 pod 时,提示没有 pod。[root@k8s1-1 kubernetes]# k ...