Kubernetes(K8s)

这篇具有很好参考价值的文章主要介绍了Kubernetes(K8s)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Kubernetes(K8s)

什么是Kubernetes?

  • 容器化应用提供集群部署和管理的开源工具,由Google研发,在2014开源。
  • Pod:一个pod可以运行多个容器。

Kubernetes 安装

# 前提 安装 docker

# 配置K8s安装源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

# 临时关闭 selinux
setenforce 0

# 安装
yum install -y kubelet kubeadm kubectl
# 由于官网未开放同步方式, 可能会有索引gpg检查失败的情况, 这时请用以下安装命令
yum install -y --nogpgcheck kubelet kubeadm kubectl
#配置开机自启
systemctl enable kubelet && systemctl start kubelet


# 初始化时错误
[ERROR CRI]: container runtime is not running: output: E0910 18:37:12.496739    2884 remote_runtime.go:925] 
"Status from runtime service failed" err="rpc error: code = Unimplemented desc =unknown service runtime.v1alpha2.RuntimeService"

# 解决
# 1)查看容器配置:CRI、是否被禁用
cat /etc/containerd/config.toml
# 2)移除
rm -fr /etc/containerd/config.toml
# 3)重启容器
systemctl restart containerd
# 4)查看容器状态
systemctl status containerd.service


# 初始化时错误:
Unfortunately, an error has occurred:
	timed out waiting for the condition

This error is likely caused by:
	- The kubelet is not running
	- The kubelet is unhealthy due to a misconfiguration of the node in some way (required cgroups disabled)

If you are on a systemd-powered system, you can try to troubleshoot the error with the following commands:
	- 'systemctl status kubelet'
	- 'journalctl -xeu kubelet'

Additionally, a control plane component may have crashed or exited when started by the container runtime.
To troubleshoot, list all containers using your preferred container runtimes CLI.
Here is one example how you may list all running Kubernetes containers by using crictl:
	- 'crictl --runtime-endpoint unix:///var/run/containerd/containerd.sock ps -a | grep kube | grep -v pause'
	Once you have found the failing container, you can inspect its logs with:
	- 'crictl --runtime-endpoint unix:///var/run/containerd/containerd.sock logs CONTAINERID'
error execution phase wait-control-plane: couldn't initialize a Kubernetes cluster
To see the stack trace of this error execute with --v=5 or higher



# 解决方案
# 1) 配置docker
cat <<EOF > /etc/docker/daemon.json
{
   "exec-opts": ["native.cgroupdriver=systemd"],
   "registry-mirrors":["https://ud6340vz.mirror.aliyuncs.com"]
}
EOF
# 2) 重启生效 : docker
systemctl daemon-reload
systemctl restart docker
# 3) 重置配置 : kubeadm
kubeadm reset


kubeadm init \
--image-repository=registry.aliyuncs.com/google_containers \
--config /etc/kubernetes/kubeadm-config.yaml

kubeadm init phase preflight --config /etc/kubernetes/kubeadm-config.yaml


hostnamectl set-hostname node1

Kubenetes 组件

kubelet

  • 运行在cluster所有节点上,负责启动POD和容器。

kubeadm

  • 用于初始化cluster

kubectl

  • Kubenetes命令行工具,部署和应用,查看各种资源、创建、删除和更新组件。

Ingress

  • 统一路由

常用命令

# Master --》 Servcie --》 deployment --》 pod --》 容器(Docker)

# 命令空间
kubectl create namespace bpg-dev
kubectl delete namespace bpg-dev

# 查看节点
kubectl get nodes
kubectl get cm -n bpg-uat
kubectl get cm -owide -n bpg-uat -owide
kubectl get svc,pod -owide -n bpg-uat

# 容器
kubectl create 
kubectl get service													#查看
kubectl delete service soul-nginx									# 删除

# 控制器
kubectl create deployment soul-nginx								# 创建
kubectl apply -f deployment.yml
kubectl get deployment/deploy										# 查看
kubectl delete deployment/deploy soul-nginx							# 删除

# pod
kubectl apply -f ./auth-frontend/deployment.yml						# 创建pod
kubectl get pods													# 查看所有的pod
kubectl get pods -n bpg-dev											# 命令空间筛选
kubectl describe pod soul-nginx-d4b56f745-vljz9 -n bpg-uat			# 查看pod详细信息
kubectl delete pod soul-nginx-d4b56f745-vljz9						# 删除pod

# 配置
kubectl get configmaps -n uat-bpg
kubectl describe configmaps bpg-config
kubectl create -f tpi-web-config.yml 

# 日志
# 以文件方式输出
kubectl logs --since=3h ip-emr-web-deployment-b55944f98-848w9 -n bpg > ip-emr-20221128.log

kubectl logs --since-time="2022-12-09T22:00:00+00:00" ip-emr-web-deployment-854c8686dc-vb5k6 -n bpg > ip-emr-20221128.log

Kubenetes 应用

Nginx

# 部署
kubectl create deployment soul-nginx --image=nginx
# 暴露控制器端口
kubectl expose deployment soul-nginx --port=80 --type=NodePOrt
# 查看
kubectl get svc,pod

文章来源地址https://www.toymoban.com/news/detail-482236.html

到了这里,关于Kubernetes(K8s)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 抛弃对外依赖,OpenEular(欧拉)操作系统为企业搭建独立的K8S集群环境! 容器编排平台丨Kubernetes 丨自主可控的云计算系统丨容器化技术丨 新一代云计算基础设施丨分布式应用部署和管理

    需要提前准备好OpenEular操作系统虚拟机3台,本文使用模板机创建。 如今,随着云计算、大数据、人工智能等技术的快速发展,越来越多的企业开始使用容器化技术来提高开发和交付速度。而Kubernetes则成为了最受欢迎的容器编排平台之一。然而,许多企业往往将Kubernetes部署在

    2024年02月11日
    浏览(71)
  • 云原生Kubernetes:K8S集群实现容器运行时迁移(docker → containerd) 与 版本升级(v1.23.14 → v1.24.1)

    目录 一、理论 1.K8S集群升级 2.环境 3.升级策略 4.master1节点迁移容器运行时(docker → containerd)  5.master2节点迁移容器运行时(docker → containerd)  6.node1节点容器运行时迁移(docker → containerd)  7.升级集群计划(v1.23.14 → v1.24.1) 8.升级master1节点版本(v1.24.1) 9.升级master2节点版本

    2024年02月03日
    浏览(66)
  • 【云原生 | Kubernetes 系列】K8s 实战 如何给应用注入数据 II 将pod数据传递给容器

    在上一篇文章中,我们学习了针对容器设置启动时要执行的命令和参数、定义相互依赖的环境变量、为容器设置环境变量,三种设置方式,本篇文章,我们将继续学习数据的传递。 有两种方式可以将 Pod 和 Container 字段传递给运行中的容器: 环境变量 卷文件 这两种呈现 Pod

    2024年01月25日
    浏览(123)
  • 【业务功能118】微服务-springcloud-springboot-Kubernetes集群-k8s集群-KubeSphere-OpenELB部署及应用

    网址: openelb.io OpenELB 是一个开源的云原生负载均衡器实现,可以在基于裸金属服务器、边缘以及虚拟化的 Kubernetes 环境中使用 LoadBalancer 类型的 Service 对外暴露服务。OpenELB 项目最初由 KubeSphere 社区发起,目前已作为 CNCF 沙箱项目加入 CNCF 基金会,由 OpenELB 开源社区维护与支

    2024年02月03日
    浏览(96)
  • K8s(Kubernetes)学习(二):k8s集群搭建

    minikube 只是一个 K8S 集群模拟器,只有一个节点的集群,只为测试用,master 和 worker 都在一起。 裸机安装 至少需要两台机器(主节点、工作节点个一台),需要自己安装 Kubernetes 组件,配置会稍微麻烦点。 缺点:配置麻烦,缺少生态支持,例如负载均衡器、云存储。 直接用

    2024年02月09日
    浏览(57)
  • Kubernetes(K8S)集群部署

    目录 一、创建3台虚拟机 二、为每台虚拟机安装Docker 三、安装kubelet 3.1 安装要求 3.2 为每台服务器完成前置设置 3.3 为每台服务器安装kubelet、kubeadm、kubectl 四、使用kubeadm引导集群 4.1 master服务器 4.2 node1、node2服务器 4.3 初始化主节点 4.4 work节点加入集群 五、token过期怎么办?

    2024年02月07日
    浏览(78)
  • Kubernetes(k8s)集群安装部署

    名称 IP 系统 配置 主控节点 192.168.202.101 CentOS 7.9.2009 2核4G 工作节点1 192.168.202.102 CentOS 7.9.2009 2核4G 工作节点2 192.168.202.103 CentOS 7.9.2009 2核4G 2.1 升级操作系统内核 导入elrepo gpg key 安装elrepo YUM源仓库 安装kernel-ml版本,ml为长期稳定版本,lt为长期维护版本 设置grub2默认引导为0 重

    2024年02月10日
    浏览(74)
  • 容器化进阶Kubernetes(K8S)详解

    1.1.1 Kubernetes是什么及作用 Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。 Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 官网地址 Kubernetes 中文社区 Kubernetes(k8s)中文文档 目录_Kubernetes中文社

    2024年02月05日
    浏览(74)
  • yum部署kubernetes(k8s)集群、k8s常用资源管理

    目录 一、环境搭建 1、准备环境 1)计算机说明,建议系统版本7.4或者7.6 2)修改所有主机的计算机名设置host文件  2、安装master节点 1)安装etcd配置etcd 2)安装k8s-master节点 3)配置apiserver 4)配置controller和scheduler 5)启动k8s服务 3、安装k8s-master上的node 1)安装node 2)配置kube

    2024年02月13日
    浏览(59)
  • k8s容器集群管理

    k8s容器集群管理 k8s简介 容器技术的发展 使用kubeadm安装k8s kubectl Kubernetes 架构 k8s节点 节点与控制面之间的通信 控制器 k8s容器 Kubernetes 对象 Kubernetes 对象管理 Kubernetes 对象管理 指令式命令 Kubernetes 对象管理 指令式对象配置 k8s对象管理 声明式对象配置 使用 Kustomize 对 Kubern

    2024年02月10日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包