使用k8x 部署Nginx

本文介绍了使用Kubernetes部署Nginx服务的过程,包括编写Deployment配置文件、创建Pod等操作。还展示了查看Pod状态和详细信息的方法。此外,说明了对Nginx服务进行升级,将镜像版本从1.7.9升级为1.8的操作,可使用kubectl replace或apply指令完成更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80


Pod 就是 Kubernetes 世界里的“应用”;而一个应用,可以由多个容器组成。


[root@dock01 ~]# docker ps | grep -i nginx
[root@dock01 ~]# kubectl get pods -l app=nginx
No resources found in default namespace.


[root@dock02 ~]# docker ps | grep -i nginx
[root@dock02 ~]# kubectl get pods -l app=nginx
The connection to the server localhost:8080 was refused - did you specify the right host or port?

[root@dock01 ~]# kubectl create -f nginx-deployment.yaml
deployment.apps/nginx-deployment created


[root@dock02 ~]# docker ps | grep -i nginx
1eed4915de2e        registry.aliyuncs.com/google_containers/pause:3.2   "/pause"                 2 minutes ago        Up 2 minutes                            k8s_POD_nginx-deployment-5d59d67564-nvdgx_default_16c86a50-9c46-4bbc-9d0e-7a0646b6eed8_0
674e221f5d61        registry.aliyuncs.com/google_containers/pause:3.2   "/pause"                 2 minutes ago        Up 2 minutes                            k8s_POD_nginx-deployment-5d59d67564-xrzlw_default_8e381ef6-43fd-4f69-afa5-7d818849360e_0


会在docker02上创建容器

kubectl  get deployments -n 


[root@dock01 ~]# kubectl get pods -l app=nginx
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-5d59d67564-nvdgx   1/1     Running   0          6m50s
nginx-deployment-5d59d67564-xrzlw   1/1     Running   0          6m50s

此外, 你还可以使用 kubectl describe 命令,查看一个 API 对象的细节,比如:

[root@dock01 ~]# kubectl get pods -l app=nginx
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-5d59d67564-nvdgx   1/1     Running   0          8m13s
nginx-deployment-5d59d67564-xrzlw   1/1     Running   0          8m13s


[root@dock01 ~]# kubectl describe pod nginx-deployment-5d59d67564-nvdgx
Name:         nginx-deployment-5d59d67564-nvdgx
Namespace:    default
Priority:     0
Node:         dock02/192.168.137.201
Start Time:   Thu, 17 Dec 2020 01:48:44 -0500
Labels:       app=nginx
              pod-template-hash=5d59d67564
Annotations:  <none>
Status:       Running
IP:           10.32.0.7
IPs:
  IP:           10.32.0.7
Controlled By:  ReplicaSet/nginx-deployment-5d59d67564
Containers:
  nginx:
    Container ID:   docker://b6bce32dc0aba501c32d698a66c702407ad5e22559346dfc5300168f9f872749
    Image:          nginx:1.7.9
    Image ID:       docker-pullable://nginx@sha256:e3456c851a152494c3e4ff5fcc26f240206abac0c9d794affb40e0714846c451
    Port:           80/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Thu, 17 Dec 2020 01:51:56 -0500
    Ready:          True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-tmb7n (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             True 
  ContainersReady   True 
  PodScheduled      True 
Volumes:
  default-token-tmb7n:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-tmb7n
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                 node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type    Reason     Age    From               Message
  ----    ------     ----   ----               -------
  Normal  Scheduled  9m6s   default-scheduler  Successfully assigned default/nginx-deployment-5d59d67564-nvdgx to dock02
  Normal  Pulling    9m     kubelet            Pulling image "nginx:1.7.9"
  Normal  Pulled     5m55s  kubelet            Successfully pulled image "nginx:1.7.9" in 3m5.352918751s
  Normal  Created    5m54s  kubelet            Created container nginx
  Normal  Started    5m54s  kubelet            Started container nginx
  
  接下来,如果我们要对这个 Nginx 服务进行升级,把它的镜像版本从 1.7.9 升级为 1.8,要怎么做呢?
  
  
...    
    spec:
      containers:
      - name: nginx
        image: nginx:1.8 #这里被从1.7.9修改为1.8
        ports:
      - containerPort: 80
      
[root@dock02 ~]# docker ps | grep -i nginx
b6bce32dc0ab        nginx                                               "nginx -g 'daemon of??   30 minutes ago       Up 30 minutes                           k8s_nginx_nginx-deployment-5d59d67564-nvdgx_default_16c86a50-9c46-4bbc-9d0e-7a0646b6eed8_0
1f3a29186b33        nginx                                               "nginx -g 'daemon of??   30 minutes ago       Up 30 minutes                           k8s_nginx_nginx-deployment-5d59d67564-xrzlw_default_8e381ef6-43fd-4f69-afa5-7d818849360e_0


我们可以使用 kubectl replace 指令来完成这个更新:


 $ kubectl replace -f nginx-deployment.yaml
 
 

$ kubectl apply -f nginx-deployment.yaml

# 修改nginx-deployment.yaml的内容

$ kubectl apply -f nginx-deployment.yaml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

scan724

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值