K8S集群测试部署第一个pod nginx服务
·
K8S集群测试部署第一个pod nginx服务
一、首先我们要理解K8S中的几个核心概念
1、deployment 控制Pod副本数量:
是用来定义和管理 Pod 的高级控制器。它描述了应用程序的期望状态,例如需要运行的 Pod 数量、使用的镜像版本等信息。Deployment 会负责根据这些描述来创建、删除或更新 Pod,以确保实际运行的 Pod 符合期望状态。
2、pod 管理容器
是 Kubernetes 中最小的调度单元,它可以包含一个或多个容器,并共享相同的网络命名空间和存储卷。Pod 提供了部署应用程序所需的环境,并且可以被创建、删除或替换。
3、service 对外发布服务
是用来暴露 Pod 提供的服务给其他应用程序或用户的方式。Service 定义了一组 Pod 的访问策略,通过标签选择器将请求路由到匹配的 Pod 上。Service 可以提供负载均衡、服务发现、内部集群通信等功能。
二、手段命令搭建一个nginx pod
1、直接命令创建deploy 启动pod
kubectl create deployment nginx --image=nginx
2、查看pod是否启动成功
[root@master-192-168-146-131 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-6799fc88d8-k7jml 0/1 ImagePullBackOff 0 4m21s
3、发现错误,因为是国内的所以镜像拉取不到 修改加速源。注“每台节点 都需要改 因为你不知道pod会调度到哪里”。
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": [
"https://register.liberx.info",
"https://dockerpull.com",
"https://docker.anyhub.us.kg",
"https://dockerhub.jobcher.com",
"https://dockerhub.icu",
"https://docker.awsl9527.cn",
"https://docker.m.daocloud.io",
"https://hub-mirror.c.163.com",
"https://mirror.ccs.tencentyun.com"
],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
sudo systemctl restart docker
当然加这么多源会出现下载速度相对过慢的问题。相对的
4、更换源之后,删除pod 让其重新调度
kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-6799fc88d8-k7jml 0/1 ImagePullBackOff 0 4m21s
[root@master-192-168-146-131 ~]# kubectl delete pod nginx-6799fc88d8-k7jml
pod "nginx-6799fc88d8-k7jml" deleted
在重新查看是否成功
[root@master-192-168-146-131 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-6799fc88d8-rs8mq 0/1 ContainerCreating 0 55s
[root@master-192-168-146-131 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-6799fc88d8-rs8mq 1/1 Running 0 96s
5、将运行的nginx服务对外暴露
kubectl expose deployment nginx --port=80 --type=NodePort
[root@master-192-168-146-131 ~]# kubectl get pod,svc
NAME READY STATUS RESTARTS AGE
pod/nginx-6799fc88d8-rs8mq 1/1 Running 0 66m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3d3h
service/nginx NodePort 10.97.162.194 <none> 80:30970/TCP 23s
[root@master-192-168-146-131 ~]#
[root@master-192-168-146-131 ~]#
[root@master-192-168-146-131 ~]#
[root@master-192-168-146-131 ~]# kubectl get svc -A
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3d3h
default nginx NodePort 10.97.162.194 <none> 80:30970/TCP 45s
kube-system kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 3d3h
6、验证是否成功
curl http://10.97.162.194/
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
更多推荐

所有评论(0)