Centos7 安装 Kubernetes 集群详细步骤(安装篇)

简介:

 

主机名

ip

备注

k8s_master

192.168.234.130

Master&etcd

k8s_node1

192.168.234.131

Node1

k8s_node2

192.168.234.132

Node2

 

Kubernetes goole开源的大规模容器集群管理系统,使用centos7 自带的Kubernetes 组件、分布式键值存储系统etcd 以及flannel 实现Docker容器中跨容器访问。


(集群环境需要ntp时钟一致,因为是云的机器,系统默认有时钟核对)

                                                 

第一步组件安装

Master节点:

systemctl stop firewalld && sudo systemctl disable firewalld

yum install -y kubernetes etcd docker flannel     

 

Node节点:

systemctl stop firewalld && sudo systemctl disable firewalld

yum install -y kubernetes  docker flannel

 

第二步配置

节点

运行服务

 

 

 

Master

etcd

kube-apiserver

kube-controller-manager

kube-scheduler

kube-proxy

kubelet

docker

flanneld

 

 

node

flanneld

docker

kube-proxy

kubelet

 

          

Master:

hostnamectl set-hostname k8s_master

vi /etc/hosts

192.168.234.130   k8s_master

192.168.234.131   k8s_node1

192.168.234.132   k8s_node2

 

etcd配置 

vi /etc/etcd/etcd.conf  

ETCD_NAME=default

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"

ETCD_ADVERTISE_CLIENT_URLS=http://localhost:2379

 

apiserver 配置

vi /etc/kubernetes/apiserver

KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"   (apiserver绑定主机的非安全IP地址)

KUBE_API_PORT="--port=8080"                                          (apiserver绑定主机的非安全端口号)

KUBELET_PORT="--kubelet-port=10250"

KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.234.130:2379"

KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=192.168.234.0/24" (虚机同一网段)

KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"

KUBE_API_ARGS=""

 

Kubelet配置

vi /etc/kubernetes/kubelet

KUBELET_ADDRESS="--address=0.0.0.0"

KUBELET_PORT="--port=10250"

KUBELET_HOSTNAME="--hostname-override=192.168.234.130"

KUBELET_API_SERVER="--api-servers=http://192.168.234.130:8080"

KUBELET_POD_INFRA_CONTAINER="--pod-infra-Container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"

KUBELET_ARGS=""

 

config配置 

vi /etc/kubernetes/config

KUBE_LOGTOSTDERR="--logtostderr=true"

KUBE_LOG_LEVEL="--v=0"

KUBE_ALLOW_PRIV="--allow-privileged=false"

KUBE_MASTER="--master=http://192.168.234.130:8080"

 

scheduler和 proxy 暂时没有用到,就不需要配置

 

flannel 配置

vi /etc/sysconfig/flanneld  

FLANNEL_ETCD="http://192.168.234.130:2379"

FLANNEL_ETCD_KEY="/atomic.io/network"

etcdctl  set修改get查询。不管是修改还是创建的时候,配置文件必须完整/coreos.com/network/config,要不然启动会报错。

添加网络:

systemctl enable etcd.service

systemctl start etcd.service

etcdctl mk //atomic.io/network/config '{"Network":"172.17.0.0/16"}'  创建

etcdctl rm //atomic.io/network/config '{"Network":"172.17.0.0/16"}'   删除

 

Master启动:

for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler   kube-proxy  kubelet docker flanneld   ; do systemctl restart   $SERVICES; systemctl enable $SERVICES; systemctl status $SERVICES; done;

 

node配置:

 

hostnamectl set-hostname k8s_node1/2

 

Kubelet配置

vi   /etc/kubernetes/kubelet

KUBELET_ADDRESS="--address=0.0.0.0"

KUBELET_PORT="--port=10250"

KUBELET_HOSTNAME="--hostname-override=192.168.234.131"   (相应节点IP)

KUBELET_API_SERVER="--api-servers=http://192.168.234.130:8080"     (master节点IP

KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"

KUBELET_ARGS=" "

 

config配置 

vi  /etc/kubernetes/config  

KUBE_LOGTOSTDERR="--logtostderr=true"

KUBE_LOG_LEVEL="--v=0"

KUBE_ALLOW_PRIV="--allow-privileged=false"

KUBE_MASTER="--master=http://192.168.234.130:8080"

 

flannel 配置

vi  /etc/sysconfig/flanneld  

FLANNEL_ETCD="http://192.168.234.130:2379"

FLANNEL_ETCD_KEY="/atomic.io/network"

 

node启动

for SERVICES in kube-proxy kubelet docker flannelddo
        systemctl restart $SERVICES
        systemctl enable $SERVICES
        systemctl status $SERVICES
    done;

 

 

查看所有NODE是否正常

kubectl -s 192.168.234.130:8080 get no

kubectl get nodes

 

 

访问http://kube-apiserver:port

http://192.168.234.130:8080/        查看所有请求url

http://192.168.234.130:8080/healthz/ping      查看健康状况

 

wget  https://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml

 

kubectl create -f kubernetes-dashboard.yaml

kubectl delete -f kubernetes-dashboard.yaml

kubectl create -f kubernetes-dashboard.yaml

 

 

kubectl get namespace




      本文转自crazy_charles 51CTO博客,原文链接:http://blog.51cto.com/douya/1945382,如需转载请自行联系原作者



相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
13天前
|
Linux 虚拟化 Windows
VMware隐藏黑科技!CentOS安装这个神器效率翻倍 文件互传竟比U盘还快?
### 安装VMtools的作用及步骤 安装VMtools可以实现Windows与CentOS之间的字符串和命令粘贴、文件夹共享等操作。在CentOS中,通过VMware菜单栏选择“VMware Tools”,将下载的压缩包拷贝到`/opt`目录并解压。接着进入终端,使用`./vmware-install.pl`命令完成安装。安装后重启系统,即可实现Windows与CentOS之间的字符和文件共享。具体步骤包括解压文件、启动命令行终端、安装VMtools以及配置文件共享。
51 16
VMware隐藏黑科技!CentOS安装这个神器效率翻倍 文件互传竟比U盘还快?
|
13天前
|
存储 IDE Linux
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
本文详细介绍了在VMware虚拟机中安装CentOS 6.8的全过程。首先,需确保已安装VMware并开启V-CPU虚拟化功能,可通过BIOS设置或使用LeoMoon CPU-V工具检测。接着,下载CentOS镜像文件,并在VMware中新建虚拟机,配置CPU、内存、硬盘等参数。最后,加载ISO镜像启动虚拟机,按照提示完成CentOS的安装,包括语言、键盘、存储方式、地区、密码设置及硬盘分区等步骤。安装完成后,以root用户登录即可进入系统桌面,开始学习Linux命令和操作。
69 12
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
|
26天前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
132 25
|
14天前
|
人工智能 运维 Kubernetes
2025 超详细!Lens Kubernetes IDE 多平台下载安装与集群管理教程
Lens 是一款企业级 Kubernetes 可视化操作平台,2025版实现了三大技术革新:AI智能运维(异常检测准确率98.7%)、多云联邦管理(支持50+集群)和实时3D拓扑展示。本文介绍其安装环境、配置流程、核心功能及高阶技巧,帮助用户快速上手并解决常见问题。适用于 Windows、macOS 和 Ubuntu 系统,需满足最低配置要求并前置依赖组件如 kubectl 和 Helm。通过 Global Cluster Hub 实现多集群管理,AI辅助故障诊断提升运维效率,自定义监控看板和插件生态扩展提供更多功能。
|
1月前
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
87 20
|
2月前
|
存储 Shell 网络安全
Centos7.9安装openldap
Centos7.9安装openldap
69 16
|
2月前
|
数据可视化 Linux 应用服务中间件
Centos7.9安装phpldapadmin
Centos7.9安装phpldapadmin
80 15
|
8天前
|
人工智能 分布式计算 调度
打破资源边界、告别资源浪费:ACK One 多集群Spark和AI作业调度
ACK One多集群Spark作业调度,可以帮助您在不影响集群中正在运行的在线业务的前提下,打破资源边界,根据各集群实际剩余资源来进行调度,最大化您多集群中闲置资源的利用率。
|
19天前
|
Prometheus Kubernetes 监控
OpenAI故障复盘丨如何保障大规模K8s集群稳定性
OpenAI故障复盘丨如何保障大规模K8s集群稳定性
|
23天前
|
运维 分布式计算 Kubernetes
ACK One多集群Service帮助大批量应用跨集群无缝迁移
ACK One多集群Service可以帮助您,在无需关注服务间的依赖,和最小化迁移风险的前提下,完成跨集群无缝迁移大批量应用。

热门文章

最新文章