网站页面优化怎么做,柳州做网站的,机械做网站,在线教育培训平台定制0x01 初见K8S
在地下城的迷宫深处#xff0c;有一个神奇的存在#xff0c;它就是Kubernetes#xff01;宛如一个勇敢的冒险者#xff0c;它穿越着这个复杂的迷宫#xff0c;带领着容器们战胜各种惊险的挑战。
Kubernetes就像是一位无所畏惧的剑士#xff0c;手握着强大…0x01 初见K8S
在地下城的迷宫深处有一个神奇的存在它就是Kubernetes宛如一个勇敢的冒险者它穿越着这个复杂的迷宫带领着容器们战胜各种惊险的挑战。
Kubernetes就像是一位无所畏惧的剑士手握着强大的剑准备与困难和故障战斗。它以不屈不挠的精神保护着你的应用程序免受各种怪物的袭击。
在这个神秘的地下城中Kubernetes就像是一个聪明的魔法师通过智慧和魔法将容器编排得井井有条。它使用魔法力量创造出副本集确保即使遭受到怪物的攻击你的应用程序依然稳如磐石。
而每个容器都像是一个身手敏捷的盗贼它们穿梭在迷宫的各个角落不断执行任务。而Kubernetes就是这个团队的首领指挥着盗贼们完成各种危险的任务并保证他们顺利返回基地。
在这个神奇的地下城冒险中Kubernetes就像是一位英勇的战士守护着你的应用程序保证它们始终在最佳状态下运行。它像一面坚固的盾牌保护你的应用免受敌人的伤害。
总而言之Kubernetes就是地下城中的超级英雄它以它独特的能力和智慧带领着容器们在这个充满挑战的迷宫中闯荡。
0x01a 什么是K8S
Kubernetes通常简称为K8s是一个开源的容器编排和管理平台用于自动化部署、扩展和操作容器化应用程序。它提供了一个强大的容器集群管理系统能够简化容器化应用的部署、管理和维护。
Kubernetes最初由Google开发并于2014年发布为开源项目。它建立在容器技术如Docker之上通过集成各种功能来解决容器化应用部署和管理中的复杂性。
Kubernetes的核心概念包括
Pod容器组是Kubernetes中最小的可部署单元包含一个或多个紧密关联的容器它们共享网络和存储资源。Service服务定义一组Pod的访问方式和网络策略提供了一个稳定的网络终结点以便其他应用程序可以访问它们。ReplicaSet副本集用于指定运行同一Pod副本的数量确保在集群中始终存在所需数量的Pod实例。Deployment部署用于指定应用程序的期望状态并在集群中创建和更新副本集以达到所需的状态。Namespace命名空间用于将集群内的资源进行逻辑分组和隔离以帮助不同的团队或项目在同一集群中管理自己的资源。Kubernetes提供了大量的功能和特性如自动伸缩、负载均衡、故障恢复、配置管理等使得容器化应用可以更加灵活、可靠地运行在分布式环境中。
总而言之Kubernetes是一个开源的容器编排和管理平台通过自动化和抽象化的方式简化了容器化应用的部署、扩展和管理成为了现代云原生应用开发和部署的标准工具之一。
0x01b 功能特点
KubernetesK8s作为一个容器编排和管理平台拥有以下一些主要功能和特点 自动化容器部署和扩展Kubernetes可以自动处理容器的创建、启动、停止和删除根据应用程序的需求进行水平扩展从而有效地管理应用程序的生命周期。 负载均衡和服务发现Kubernetes提供内建的负载均衡机制可以将流量智能地分配到应用程序的各个实例上。它还提供了服务发现功能使得其他应用程序可以轻松地找到和访问服务。 自我修复和健康检查Kubernetes具备自我修复的能力它会监控应用程序的运行状态并在出现故障时自动重新启动失败的容器。同时它支持健康检查机制可以定期检查容器的健康状况并根据检查结果采取相应措施。 配置和存储管理Kubernetes提供了灵活的配置管理功能允许用户通过配置文件或环境变量来更新应用程序的参数。此外Kubernetes还提供了持久化存储的支持可以帮助应用程序在容器重启或迁移时保留数据。 水平扩展和资源管理Kubernetes支持水平扩展可以根据应用程序的负载情况动态调整容器的数量。它还提供了资源管理功能可以对容器的资源使用进行限制和分配确保每个容器都能得到适当的资源。 多租户和安全性Kubernetes支持多租户模式可以将不同团队或项目的容器隔离在不同的命名空间中确保它们之间的资源不会冲突。同时Kubernetes还提供了安全功能如基于角色的访问控制RBAC以保护集群和应用程序的安全。
总的来说Kubernetes的主要功能是自动化容器部署和扩展、负载均衡和服务发现、自我修复和健康检查、配置和存储管理、水平扩展和资源管理以及多租户和安全性等特点。这些功能和特点使得Kubernetes成为一款强大而灵活的容器编排和管理工具。
0x02 组件部署
0x02a 配置要求
0x02b 部署方法
0x02c 镜像源
编辑/etc/apt/sources.list文件, 在文件最前面添加以下条目(操作前请做好相应备份)
deb https://repo.huaweicloud.com/ubuntu-ports/ bionic main restricted universe multiverse
deb-src https://repo.huaweicloud.com/ubuntu-ports/ bionic main restricted universe multiverse
deb https://repo.huaweicloud.com/ubuntu-ports/ bionic-security main restricted universe multiverse
deb-src https://repo.huaweicloud.com/ubuntu-ports/ bionic-security main restricted universe multiverse
deb https://repo.huaweicloud.com/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb-src https://repo.huaweicloud.com/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb https://repo.huaweicloud.com/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb-src https://repo.huaweicloud.com/ubuntu-ports/ bionic-backports main restricted universe multiverse
https://repo.huaweicloud.com/kubernetes/
##Not recommended
#deb https://repo.huaweicloud.com/ubuntu-ports/ bionic-proposed main restricted universe multiverse
#deb-src https://repo.huaweicloud.com/ubuntu-ports/ bionic-proposed main restricted universe multiverse配置完镜像源后
apt update
apt upgrade0x02b 配置主机信息
修改hosts文件
echo
[ip address] [hostname]
[ip address] [hostname]
[ip address] [hostname]/etc/hostsecho
192.168.0.156 k8s-master-156
192.168.0.23 k8s-node-23
192.168.0.169 k8s-node-169/etc/hosts修改主机名
hostnamectl set-hostname k8s-master-156hostnamectl set-hostname k8s-node-23hostnamectl set-hostname k8s-node-1690x02c install docker
安装版本 Docker version 20.10.25, build 20.10.25-0ubuntu1~20.04.1
sudo apt install docker.io0x02ca docker configuration
cgroupsControl Groups在Docker中是一种Linux内核特性用于限制、控制和隔离进程组的资源使用。它在Docker中起到了以下几个作用 资源限制通过cgroupsDocker可以对运行在容器中的进程组施加资源限制如CPU、内存、磁盘IO等。这样可以确保容器之间不会相互干扰防止某个容器过度占用资源导致整个系统性能下降。 资源隔离cgroups允许Docker在主机上创建多个资源隔离的容器并为每个容器分配适量的CPU、内存等资源。这样每个容器就可以在自己的资源限制下独立运行相互之间互不影响。 资源统计cgroups还提供了对容器中资源使用情况的统计信息例如CPU使用时间、内存使用量等。这些统计数据可以帮助运维人员监控和优化容器的资源利用情况并做出相应的调整。
总之cgroups在Docker中起到了资源限制、资源隔离和资源统计的作用使得Docker能够更好地管理和控制容器的资源使用提高系统的稳定性和性能。
打开需要修改的文件
sudo vi /etc/docker/daemon.json输入需要修改的内容
{registry-mirrors: [https://mirror.ccs.tencentyun.com,https://reg-mirror.qiniu.com,https://quay-mirror.qiniu.com],exec-opts: [ native.cgroupdriversystemd ]
}配置文件修改后保存
sudo systemctl daemon-reload
sudo systemctl restart docker使用docker info | grep Cgroup出现下列信息则代表修改成功
Cgroup Driver: systemd其他机器重复以上步骤
0x03 install k8s
0x03a 组件介绍
以下是对 Kubernetes 的三个主要组件 kubelet、kubeadm 和 kubectl 的简要介绍 kubelet kubelet 是 Kubernetes 集群中每个节点上的代理服务。它负责管理节点上的容器运行时如 Docker以及与 Master 节点通信接收来自 Master 节点的指令并执行相应操作。kubelet 监控节点上的资源使用情况确保 Pod 在节点上正确运行并与 Master 节点协调其状态。 kubeadm kubeadm 是一个命令行工具用于在 Kubernetes 集群中初始化和管理 Master 节点。使用 kubeadm你可以轻松地创建一个全新的 Kubernetes 集群或将已有的节点加入现有集群。它自动处理集群的初始化过程包括生成证书、创建配置文件和安装所需的组件等。kubeadm 还提供了一些管理集群的常用命令和功能。 kubectl kubectl 是 Kubernetes 集群的命令行客户端工具用于与 Kubernetes API Server 进行交互管理和操作集群中的资源。通过 kubectl你可以创建、更新和删除各种 Kubernetes 资源如 Pod、Service、Deployment 等。它还提供了查看集群状态、调试应用程序和执行其他管理任务的功能。
这三个组件在 Kubernetes 中扮演着重要的角色。kubelet 负责节点上的容器管理和与 Master 节点的通信kubeadm 简化了集群的初始化和管理过程而 kubectl 提供了一个强大的命令行接口用于管理和操作 Kubernetes 集群。结合使用这三个组件你可以轻松地创建、部署和管理容器化应用程序。
一键安装如何可以运行
apt-get install -y kubelet kubeadm kubectl备份配置文件
cp /etc/apt/sources.list.d/kubernetes.list /etc/apt/sources.list.d/kubernetes.list.bak修改配置文件
cat EOF /etc/apt/sources.list.d/kubernetes.list
deb https://repo.huaweicloud.com/kubernetes/apt/ kubernetes-xenial main
EOF添加kubernetes的key
curl -s https://repo.huaweicloud.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -更新索引文件并安装kubernetes
sudo apt update
sudo apt install -y kubeadm kubelet kubectl0x03b 技术总结
sudo apt install docker.io
cat EOF /etc/docker/daemon.json
{registry-mirrors: [https://mirror.ccs.tencentyun.com,https://reg-mirror.qiniu.com,https://quay-mirror.qiniu.com],exec-opts: [ native.cgroupdriversystemd ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker info | grep Cgroup
cat EOF /etc/apt/sources.list.d/kubernetes.list
deb https://repo.huaweicloud.com/kubernetes/apt/ kubernetes-xenial main
EOF
curl -s https://repo.huaweicloud.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt update
sudo apt install -y kubeadm kubelet kubectl0x04 k8s配置
0x04a master init
拉取coredns镜像
docker pull coredns/coredns:1.8.4
docker tag coredns/coredns:1.8.4 registry.aliyuncs.com/google_containers/coredns:v1.8.4Initialization Kubeadm
kubeadm init \
--apiserver-advertise-address[ip address] \
--image-repository registry.aliyuncs.com/google_containers \
--pod-network-cidr[cidr]demo
kubeadm init \
--apiserver-advertise-address192.168.0.156 \
--image-repository registry.aliyuncs.com/google_containers \
--pod-network-cidr10.244.0.0/16 烂尾