Kubernetes系列之三:部署你的第一个应用程序到k8s集群

本文指导如何在Ubuntu上快速搭建Kubernetes集群,并通过yaml文件创建deployment和service部署应用程序,最后验证部署成功。

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

系列链接

Kubernetes系列之一:在Ubuntu上快速搭建一个集群Demo

Kubernetes系列之二:将Slave节点加入集群

Kubernetes系列之三:部署你的第一个应用程序到k8s集群

Kubernetes系列之四:使用yaml文件创建deployment来部署一个应用程序到k8s集群

Kubernetes系列之五:使用yaml文件创建service向外暴露服务

Kubernetes系列之六:安装k8s通用的Web UI(Dashboard)

Kubernetes系列之N:使用K8s遇到的问题

部署你的第一个应用程序到k8s集群

看到这里,求知欲饥渴难耐的你一定在想,怎么部署的我们应用程序到集群里面去呢?来个简单的,只需要两步:(这里本文使用nginx镜像当我们的应用程序,因为nginx 简单,运行起来后直接可以用浏览器访问网页了。)

第一步:在master 节点上创建一个deployment

kubectl create deployment nginx --image=nginx

效果如下,可以看到一个叫nginx的deployment创建成功了。

root@ubuntu:/home/cong# kubectl create deployment nginx --image=nginx
deployment.apps/nginx created

root@ubuntu:/home/cong# kubectl get deployments
NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
nginx     1         1         1            1           11m

 第二步:创建一个service

kubectl create service nodeport nginx --tcp 80:80

 效果如下,可以看到一个叫nginx的service创建成功了,这里kubectl get svc是kubectl get services的简写。

root@ubuntu:/home/cong# kubectl create service nodeport nginx --tcp 80:80
service/nginx created

root@ubuntu:/home/cong# kubectl get svc
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP        3d
nginx        NodePort    10.107.237.157   <none>        80:30601/TCP   11s

在slave节点上执行下面的命令验证一下nginx有没有部署成功。

curl localhost:30601

或者

curl kube-slave:30601

 效果如下:

root@ubuntu:/home/cong# curl localhost:30601
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    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>

用浏览器打开试试,nginx的首页显示出来了。

简单吧,是不是信心大增了?!

为了练习更多复杂的命令,我们将上面建好的deployments/nginx, services/nginx 删除先,命令如下:

root@ubuntu:/home/cong# kubectl delete deployments/nginx services/nginx
deployment.extensions "nginx" deleted
service "nginx" deleted

好了,你应用程序部署的处女作就完美结束了

Kubernetes(简称 K8s)是一种用于自动化部署、扩展和管理容器化应用程序的开源平台。下面是一个简单的 Kubernetes 集群部署指南,适合初学者了解如何从环境准备到应用部署。 ### 第一步:环境准备 1. **安装Docker** 确保所有节点上都已安装 Docker,并运行正常。Docker 是 Kubernetes 的默认容器引擎。 2. **下载并配置 kubeadm/kubelet/kubernetes-cni** 这些工具是创建 Kubernetes 集群的核心组件: - `kubeadm` 负责初始化集群; - `kubelet` 提供了对 Node 上 Pod 和容器的管理功能; - `CNI` 插件负责网络通信设置。 3. **关闭防火墙与 Swap 分区** ``` sudo swapoff -a systemctl disable --now ufw ``` 4. **加载必要的内核模块** ```bash sudo modprobe overlay sudo modprobe br_netfilter ``` 5. **修改 sysctl 参数以允许桥接流量传递 IP 地址信息** ```bash cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sudo sysctl --system ``` --- ### 第二步:初始化 Master 节点 1. 使用以下命令初始化主控节点: ```bash sudo kubeadm init --pod-network-cidr=10.244.0.0/16 ``` 初始化完成后会生成一个加入指令,保存下来稍后添加 Worker 节点时需要用到。 2. 设置 kubeconfig 文件路径以便普通用户可以操作 API Server: ```bash mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config ``` 3. 安装 Pod 网络插件 (如 Flannel): ```bash kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` --- ### 第三步:加入 Workder 节点 在每个工作节点上执行刚才记录下的 token 加入命令,例如: ```bash kubeadm join <master-ip>:<master-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash> ``` 等待一段时间直到节点状态变为 Ready。 --- ### 第四步:部署简单应用 测试是否能够成功调度任务至节点: 1. 创建 Deployment 示例 YAML 文件 `nginx-deployment.yaml` ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 80 ``` 2. 应用此配置文件启动 Nginx 副本集: ```bash kubectl create -f nginx-deployment.yaml ``` 3. 检查 Pods 是否正在运行以及分布情况: ```bash kubectl get pods -o wide ``` --- 通过以上步骤你就完成了最基础版本的一个单主机或多主机架构下基于 Linux 平台搭建 Kubernetes 集群的任务!
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值