您的位置:首页 > 新闻 > 资讯 > 开发app的平台_优质作文网站_开网站需要投资多少钱_视频外链平台

开发app的平台_优质作文网站_开网站需要投资多少钱_视频外链平台

2025/1/8 13:35:35 来源:https://blog.csdn.net/m0_56366541/article/details/144373736  浏览:    关键词:开发app的平台_优质作文网站_开网站需要投资多少钱_视频外链平台
开发app的平台_优质作文网站_开网站需要投资多少钱_视频外链平台

k8s折腾笔记

  • k8s安装、部署、运行demo
    • 1.系统环境
    • 2.开始安装
      • 2.1 先从master节点开始
      • 2.2 worker节点
    • 3.遇到的问题
    • 4.集群demo

k8s安装、部署、运行demo

1.系统环境

两台服务器,都是ubuntu22版本,
一台2核4g,作为master节点
一台2核2g,作为worker节点

两台机器都需要先安装好docker

两台都需要在安全组或者防火墙处开放端口
Master 节点:
TCP: 6443 (Kubernetes API)
TCP: 2379-2380 (etcd)
TCP: 10250 (kubelet)
Worker 节点:
TCP: 10250 (kubelet)
TCP: 30000-32767 (NodePort 服务)

2.开始安装

2.1 先从master节点开始

确保每台机器有唯一的主机名,例如:
Master 节点:master
Worker 节点:worker

hostnamectl set-hostname master  # 在 Master 上执行
hostnamectl set-hostname worker  # 在 Worker 上执行

禁用 Swap

sudo swapoff -a

配置 /etc/hosts 文件,添加两台机器的 IP 和主机名映射
这里是我的ip地址,内网,也可以直接改为你的公网ip

192.168.*.* master
192.168.*.* worker

运行以下命令进行安装,以下来自官网

更新 apt 包索引并安装使用 Kubernetes apt 仓库所需要的包:
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gpg
下载用于 Kubernetes 软件包仓库的公共签名密钥。所有仓库都使用相同的签名密钥,因此你可以忽略URL中的版本:
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.31/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
添加 Kubernetes apt 仓库。 请注意,此仓库仅包含适用于 Kubernetes 1.31 的软件包; 对于其他 Kubernetes 次要版本,则需要更改 URL 中的 Kubernetes 次要版本以匹配你所需的次要版本 (你还应该检查正在阅读的安装文档是否为你计划安装的 Kubernetes 版本的文档)。# 此操作会覆盖 /etc/apt/sources.list.d/kubernetes.list 中现存的所有配置。
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.31/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
更新 apt 包索引,安装 kubelet、kubeadm 和 kubectl,并锁定其版本:sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

运行完成命令之后你现在应该有了初步的环境,
之后执行

kubeadm init

然后k8s会提示你进行以下设置

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

使用下面这条命令获取加入集群的密钥

kubeadm token create --print-join-command

初始化后,必须安装一个网络插件(如 Flannel 或 Calico)才能使 Pod 通信正常。以 Flannel 为例:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml```

之后,输入下面这段命令便可以查看集群节点

kubetcl get nodes 
kubectl get pods -n kube-system

2.2 worker节点

配置 /etc/hosts 文件,添加两台机器的 IP 和主机名映射

192.168.*.* master
192.168.*.* worker

运行以下命令进行安装,以下来自官网

更新 apt 包索引并安装使用 Kubernetes apt 仓库所需要的包:
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gpg
下载用于 Kubernetes 软件包仓库的公共签名密钥。所有仓库都使用相同的签名密钥,因此你可以忽略URL中的版本:
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.31/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
添加 Kubernetes apt 仓库。 请注意,此仓库仅包含适用于 Kubernetes 1.31 的软件包; 对于其他 Kubernetes 次要版本,则需要更改 URL 中的 Kubernetes 次要版本以匹配你所需的次要版本 (你还应该检查正在阅读的安装文档是否为你计划安装的 Kubernetes 版本的文档)。# 此操作会覆盖 /etc/apt/sources.list.d/kubernetes.list 中现存的所有配置。
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.31/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
更新 apt 包索引,安装 kubelet、kubeadm 和 kubectl,并锁定其版本:sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

然后执行
从master节点处返回的命令加入节点,之后,你就可以在master处看见它们了

kubeadm join 10.3.4.4:6443 --token dqwbkx.max1******* --discovery-token-ca-cert-hash sha256:87c13dfb43e27de3afd8e0c8e62a8fc742**********

到处,应该算连接完成了,下面讲一讲会遇到的问题,

3.遇到的问题

在这里插入图片描述
这是在worker节点执行了安装网络插件的错误,应该是在master节点上执行,萌新错误(例如我)
在这里插入图片描述
两种情况,第一种,master节点的网络插件没安装,第二种,在etc/hosts的ip配置失效
在这里插入图片描述
执行加入节点的命令需要root权限

其实遇到最多的就是各种源的安装错误,参考网络上的教程会出现各种提示密钥过期,apt等等问题,最好是参考官方的网站上设置源
如果遇到无法下载这些问题,可以考虑设置一个国内的镜像源

4.集群demo

实验目标:使用k8s部署一个三个pod的nginx集群
步骤 1: 创建一个 NGINX 部署
创建一个 YAML 文件,例如 nginx-deployment.yaml,内容如下:

apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deployment
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:latestports:- containerPort: 80

应用这个部署文件:

kubectl apply -f nginx-deployment.yaml

检查部署状态:

kubectl get deployments
kubectl get pods

步骤 2: 暴露 NGINX 服务
创建一个 Service,以便对外暴露 NGINX。
创建一个 YAML 文件,例如 nginx-service.yaml,内容如下:

apiVersion: v1
kind: Service
metadata:name: nginx-service
spec:selector:app: nginxports:- protocol: TCPport: 80targetPort: 80nodePort: 30007type: NodePort

应用这个服务文件:

kubectl apply -f nginx-service.yaml

检查服务状态:

kubectl get services

输出应该包含类似以下的内容:

NAME            TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
nginx-service   NodePort   10.96.243.127    <pending>     80:30290/TCP   10s

其中 nodePort 是 Kubernetes 在节点上暴露的端口,可以选定范围在 30000-32767 之间。

kubectl apply -f nginx-service.yaml

现在可以通过公网ip地址访问啦!
在这里插入图片描述
不管是master节点的地址还是worker节点的地址都可以

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com