k8s离线部署nginx

  1. 拉取nginx离线包到本地

    sudo docker save nginx:latest -o nginx.tar

  2. 导入nginx image到k8s命名空间中

    sudo ctr -n k8s.io images import nginx.tar

  3. 编辑nginx.yaml

    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:latest
    imagePullPolicy: IfNotPresent
    ports:
    - containerPort: 80

    apiVersion: v1
    kind: Service
    metadata:
    name: nginx-service
    spec:
    selector:
    app: nginx
    ports:
    - protocol: TCP
    port: 80
    targetPort: 80
    type: LoadBalancer

注意 imagePullPolicy 是 IfNotPresent,使用本地镜像,k8s镜像的拉取策略为:

Always 总是拉取镜像
IfNotPresent 本地有则使用本地镜像,不拉取
Never 只使用本地镜像,从不拉取,即使本地没有
如果省略imagePullPolicy,  策略为always 
  1. apply yaml启动deployment

    kubectl apply -f nginx.yaml

  2. kubectl查看部署已经完成

    $ kubectl get deployment
    NAME READY UP-TO-DATE AVAILABLE AGE
    nginx-deployment 2/2 2 2 5m52s
    $ kubectl get pods
    NAME READY STATUS RESTARTS AGE
    nginx-deployment-54b6f7ddf9-vcl6k 1/1 Running 0 5m58s
    nginx-deployment-54b6f7ddf9-x6j7z 1/1 Running 0 5m58s

  3. 暴露nginx服务

    $ kubectl expose deployment nginx-deployment --type=NodePort --port=80
    service/nginx-deployment exposed

    $ kubectl get svc nginx-deployment
    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    nginx-deployment NodePort 10.102.52.246 <none> 80:31177/TCP 105s

访问31177端口即可访问nginx页面,至此部署完成

相关推荐
敲代码的小王!2 小时前
MD5加密算法和BCrypt密码加密算法
java·算法·安全
Marcel1116 小时前
WSL2使用Kind创建K8S集群时出现IPV6网络创建失败
云原生·kubernetes·kind
罗政7 小时前
冒险岛079 V8 整合版源码搭建教程+IDEA启动
java·ide·intellij-idea
架构默片7 小时前
【JAVA工程师从0开始学AI】,第五步:Python类的“七十二变“——当Java的铠甲遇见Python的液态金属
java·开发语言·python
不只会拍照的程序猿8 小时前
从插入排序到希尔排序
java·开发语言·数据结构·算法·排序算法
我荔枝呢!9 小时前
Java中的hashCode和equals方法之间有什么联系
java·开发语言·equals·hashcode
望未来无悔9 小时前
系统学习算法:专题十一 floodfill算法
java·算法
黑客老李9 小时前
新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)
java·运维·服务器·前端·xss
不良人天码星9 小时前
Redis的简单使用
java·spring boot·redis·mybatis
面向未来_9 小时前
JAVA Kotlin Androd 使用String.format()格式化日期
java·开发语言·kotlin