k8s部署nginx
Posted gsls200808
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s部署nginx相关的知识,希望对你有一定的参考价值。
这里用docker镜像nginx:1.20.0进行部署
编辑文件nginx-service-deployment.yaml
内容
apiVersion: v1
kind: Service
metadata:
labels:
app: nginx-servie
name: nginx-service
# 命名空间,没有可以删除,默认是default
namespace: default
spec:
ports:
# 对外暴露的端口
- nodePort: 30013
port: 80
protocol: TCP
targetPort: 80
selector:
# 这里选pod的label 不是deployment的label
app: nginx-pod
# NodePort类型可以对外暴露端口
type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx-deploy
name: nginx-deploy
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: nginx-pod
template:
metadata:
labels:
app: nginx-pod
namespace: default
spec:
containers:
# 镜像名称
- image: nginx:1.20.0
name: nginx
ports:
- containerPort: 80
resources:
部署yaml文件
kubectl apply -f nginx-service-deployment.yaml
查看运行情况
#查看dashboard命名空间下的pod
kubectl get pod
#查看状态
kubectl describe pod nginx-deploy-66ff7997cb-ls8m9
#找到node节点
kubectl get pod -o wide
#找到service端口
kubectl get svc
查看到的node节点为192.168.3.85,nodeport端口为30013 所以最终访问地址为
如果出现ImagePullBackOff或者长时间ContainerCreating状态,先设置镜像
vi /etc/docker/daemon.json
内容如下
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://registry.aliyuncs.com",
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn"
]
重载配置
systemctl reload docker
镜像地址如果不好用,那就只能是pull 导出导入tar文件形式了
#拉取镜像
docker pull kubernetesui/dashboard:v2.7.0
#镜像到处保存为tar文件
docker save kubernetesui/dashboard:v2.7.0> dashboardv2.7.0.tar
#导入tar格式的镜像
docker load < dashboardv2.7.0.tar
排查
进入pod容器执行命令
kubectl exec -it <pod-name> -n <name-space> --bash
kubectl exec -it nginx-deploy-66ff7997cb-vrhrn --bash
删除部署的pod service
kubectl delete -f nginx-service-deployment.yaml
查看service pod deployment 标签
kubectl get svc --show-labels
kubectl get pod --show-labels
kubectl get deploy --show-labels
查看 endpoint,查service和pod的ip对没对上,对应关系可以用这个命令。
endpoint 是 k8s 集群中的一个资源对象,存储在 etcd 中,用来记录一个 service 对应的所有 pod 的访问地址。
kubectl get endpoints
以上是关于k8s部署nginx的主要内容,如果未能解决你的问题,请参考以下文章
Nginx K8s + Docker 部署 ,虚拟机部署教程。