服务搭建篇(十二) Kubernetes集群的安装及部署

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

一.K8S 概览

1.K8S是什么

K8S官网文档:https://kubernetes.io/zh/docs/home/
K8S 是Kubernetes的全称,源于希腊语,意为“舵手”或“飞行员”,官方称其是:用于自动部署、扩展和管
理“容器化(containerized)应用程序”的开源系统。翻译成大白话就是:“K8S 是负责自动化运维管理多个Docker 程序的集群”。

2.K8S核心特性

  • 1.服务发现与负载均衡:无需修改你的应用程序即可使用陌生的服务发现机制。
  • 2.存储编排:自动挂载所选存储系统,包括本地存储。
  • 3.Secret和配置管理:部署更新Secrets和应用程序的配置时不必重新构建容器镜像,且不必将软件堆栈配置中的秘密信息暴露出来。
  • 4.批量执行:除了服务之外,Kubernetes还可以管理你的批处理和CI工作负载,在期望时替换掉失效的容器。
  • 5.水平扩缩:使用一个简单的命令、一个UI或基于CPU使用情况自动对应用程序进行扩缩。
  • 6.自动化上线和回滚:Kubernetes会分步骤地将针对应用或其配置的更改上线,同时监视应用程序运行状况以确保你不会同时终止所有实例。
  • 7.自动装箱:根据资源需求和其他约束自动放置容器,同时避免影响可用性。
  • 8.自我修复:重新启动失败的容器,在节点死亡时替换并重新调度容器,杀死不响应用户定义的健康检查的容器。

3.k8s集群的搭建

搭建K8S集群,准备三台2核4G的虚拟机(内存至少2G以上),操作系统选择用centos 7以上版本,先在三台机器上装好docker
docker的安装参考 : 服务搭建篇(十一) 容器引擎Docker的部署及介绍
最好保持版本的一致 , 在三台机器都执行如下命令

3.1 关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

3.2 关闭selinux

sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久关闭
setenforce 0 # 临时关闭

3.3 关闭swap

swapoff -a # 临时关闭
vim /etc/fstab # 永久关闭
#注释掉swap这行 如下图
systemctl reboot # 重启生效
free -m  # 查看下swap交换区是否都为0,如果都为0则swap关闭成功

服务搭建篇(十二) Kubernetes集群的安装及部署
服务搭建篇(十二) Kubernetes集群的安装及部署

3.4 设置hostname

hostnamectl set-hostname <hostname>

我的设置如下
第一台 : k8s-master-141
第二台 : k8s-node-142
第三台 : k8s-node-143

3.5 在 k8s-master机器添加hosts,执行如下命令,ip需要修改成你自己机器的ip

cat >> /etc/hosts << EOF
192.168.154.141 k8s-master-141
192.168.154.142 k8s-node-142
192.168.154.143 k8s-node-143
EOF

3.6 将桥接的IPv4流量传递到iptables

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system #重启生效

3.7 设置时间同步

yum install ntpdate -y
ntpdate time.windows.com

3.8 添加k8s yum源

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

3.9 如果之前安装过k8s,先卸载旧版本

yum remove -y kubelet kubeadm kubectl

3.10 查看可以安装的版本

yum list kubelet --showduplicates | sort -r

3.11 安装kubelet、kubeadm、kubectl 指定版本,我们使用kubeadm方式安装k8s集群

yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0

3.12 开机启动kubelet

systemctl enable kubelet
systemctl start kubelet
systemctl status kubelet

3.13 初始化

在k8s-master机器上执行初始化操作(里面的第一个ip地址就是k8s-master机器的ip,改成你自己机器的,后面两个ip网段不用动)

kubeadm init --apiserver-advertise-address=192.168.154.141 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16

服务搭建篇(十二) Kubernetes集群的安装及部署

在k8s-master机器上执行如下命令:
#配置使用 kubectl 命令工具(类似docker这个命令),执行上图第二个红框里的命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

查看kubectl是否能正常使用

kubectl get nodes

安装 Pod 网络插件

# 下载flannel插件的yml
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
 
# 修改kube-flannel.yml中的镜像仓库地址为国内源
sed -i 's/quay.io/quay-mirror.qiniu.com/g' kube-flannel.yml
 
# 安装网络插件
kubectl apply -f kube-flannel.yml
在所有k8s node机器执行上图第三个红框里的命令

将node节点加入进master节点的集群里,复制上图第三个红框里的命令执行(执行自己的命令)

kubeadm join 192.168.154.141:6443 --token 3ya97r.noygcitjsdcmksmk  --discovery-token-ca-cert-hash sha256:8610a89ef85433a89216141106b389763fa70b26f2653b08e99af296c489e284

3.14 在k8s-master机器执行查看节点命令

kubectl get nodes

服务搭建篇(十二) Kubernetes集群的安装及部署

补充:如果node节点添加进集群失败,可以删除节点重新添加

要删除 k8s-node-142 这个节点,首先在 master 节点上依次执行以下两个命令

kubectl drain k8s-node-142 --delete-local-data --force --ignore-daemonsets
kubectl delete node k8s-node-142

执行后通过 kubectl get node 命令可以看到 k8s-node-142 已被成功删除
接着在k8s-node-142 这个 Node 节点上执行如下命令,这样该节点即完全从 k8s 集群中脱离开来
之后就可以重新执行命令添加到集群

kubeadm reset

4.k8s部署过程踩坑记录

1.error: no configuration has been provided, try setting KUBERNETES_MASTER environment variable
2.k8s集群状态全部为NotReady文章来源地址https://www.toymoban.com/news/detail-424444.html

到了这里,关于服务搭建篇(十二) Kubernetes集群的安装及部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【探索 Kubernetes|集群搭建篇 系列 5】简化 Kubernetes 的部署,深入解析其工作流程

    大家好,我是秋意零。 在前面 4 个章节中,我们充分了解了容器技术和 Kubernes 原生时代引擎的架构和设计思想,今天分享的主要内容是,探索 Kubernetes 部署,深入解析其工作流程 👿 简介 🏠 个人主页 : 秋意零 🧑 个人介绍 :在校期间参与众多云计算相关比赛,如:🌟

    2024年02月08日
    浏览(71)
  • 【云原生|Kubernetes】02-Kubeadm安装部署Kubernetes集群

    前面简单介绍了Kubernetes的相关架构及其组件,这一章节我们将介绍如何快速搭建Kubernetes的集群,这里我们将使用官方支持的用于部署 Kubernetes 的工具— kubeadm。 主机名 ip地址 节点类型 系统版本 master.example.com 192.168.194.128 master,etcd centos7.x node1.example.com 192.168.194.130 node1 cent

    2024年02月03日
    浏览(42)
  • 云原生|kubernetes|kubernetes集群部署神器kubekey安装部署高可用k8s集群(半离线形式)

    前面利用kubekey部署了一个简单的非高可用,etcd单实例的kubernetes集群,经过研究,发现部署过程可以简化,省去了一部分下载过程(主要是下载kubernetes组件的过程)只是kubernetes版本会固定在1.22.16版本,etcd集群可以部署成生产用的外部集群,并且apiserver等等组件也是高可用,

    2024年02月15日
    浏览(48)
  • 【Kubernetes部署篇】Kubeadm方式搭建K8s集群 1.26.0版本

    官方文档: 二进制下载地址 环境规划: pod网段:10.244.0.0/16 service网段:10.10.0.0/16 注意: pod和service网段不可冲突,如果冲突会导致K8S集群安装失败。 容器运行时本次使用containerd。 主机名 IP地址 操作系统 master-1 16.32.15.200 CentOS7.8 node-1 16.32.15.201 CentOS7.8 node-2 16.32.15.202 CentOS

    2024年02月10日
    浏览(43)
  • 【Kubernetes部署篇】Kubeadm方式搭建K8s集群 1.27.0版本

    官方文档: 二进制下载地址 环境规划: pod网段:10.244.0.0/16 service网段:10.10.0.0/16 注意: pod和service网段不可冲突,如果冲突会导致K8S集群安装失败。 主机名 IP地址 操作系统 master-1 16.32.15.200 CentOS7.8 node-1 16.32.15.201 CentOS7.8 node-2 16.32.15.202 CentOS7.8 1、关闭防火墙 2、配置域名解

    2024年02月08日
    浏览(75)
  • 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)
  • 【k8s】基于Prometheus监控Kubernetes集群安装部署

    目录 基于Prometheus监控Kubernetes集群安装部署 一、环境准备 二、部署kubernetes集群 三、部署Prometheus监控平台 四、部署Grafana服务 五、grafana  web操作 IP地址 主机名 组件 192.168.100.131 k8s-master kubeadm、kubelet、kubectl、docker-ce 192.168.100.132 k8s-node01 kubeadm、kubelet、kubectl、docker-ce 192.168

    2024年02月12日
    浏览(53)
  • [云原生案例2.1 ] Kubernetes的部署安装 【单master集群架构 ---- (二进制安装部署)】节点部分

    Minikube是一个工具,可以在本地快速运行一个单节点微型K8S,仅用于学习、预览K8S的一些特性使用。 Kubeadm也是一个工具,提供kubeadm init和kubeadm join,用于快速部署K8S集群,相对简单。 生产首选,从官方下载发行版的二进制包,手动部署每个组件和自签TLS证书,组成K8S集群,

    2024年02月05日
    浏览(58)
  • kubernetes(k8s)安装、集群搭建、可视化界面、完全卸载

    官网:https://kubernetes.io/zh-cn/docs/concepts/overview/ Kubernetes 是一个可移植、可扩展的开源平台, 用于管理容器化的工作负载和服务 ,可促进声明式配置和自动化。 Kubernetes 作用: 服务发现和负载均衡 Kubernetes 可以使用 DNS 名称或自己的 IP 地址来暴露容器。 如果进入容器的流量很

    2024年02月02日
    浏览(49)
  • Centos7 安装部署 Kubernetes(k8s) 高可用集群

    宿主机系统 集群角色 服务器IP 主机名称 容器 centos7.6 master 192.168.2.150 ks-m1 docker centos7.6 master 192.168.2.151 ks-n1 docker centos7.6 master 192.168.2.152 ks-n2 docker 1.1 服务器初始化及网络配置 VMware安装Centos7并初始化网络使外部可以访问** 注意事项:请一定要看完上面这篇文章再执行下面的操

    2024年02月03日
    浏览(56)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包