运维之k8s集群搭建
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,用kubeadm部署K8s群集前提摘要: 1、各节点时间同步; 2、各节点主机名称解析:dns OR hosts 3 /etc/hosts 3、各节点ipt
千家信息网最后更新 2025年12月02日运维之k8s集群搭建
用kubeadm部署K8s群集
前提摘要: 1、各节点时间同步; 2、各节点主机名称解析:dns OR hosts 3 /etc/hosts 3、各节点iptables及firewalld服务被disable1:master(192.168.1.179) 组件:
https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
配置yum仓库导入docker 下载docker-ce.repowget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repocd /etc/yum.repos.d/vim k8s.repo #配置kubetnetes仓库[k8s]name=K8s Repobaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/gpgcheck=0gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpgenabled=1yum repolist 查看两个仓库是否能用安装docker-ce kubelet kubeadm kubectl
yum install docker-ce kubelet kubeadm kubectl -y 如果有报错 手动下载密钥执行下面命令wget https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpgrpm --import yum-key.gpg初始化docker启动docker服务
systemctl daemon-reload #重新加载文件 systemctl start docker.service #启动docker systemctl enable docker.service #设置开机自启动 systemctl enable kubelet.service docker需要自动到docker仓库去下载镜像或者通过本地仓库下载所依赖的每个镜像文件 1、通过docker自动下载依赖镜像 cd /usr/lib/systemd/system/docker.service 在 # for containers run by docker 底下加入环境变量 Environment="HTTPS_PROXY=http://www.ik8s.io:10080" 通过代理去访问需要加载的镜像文件 Environment="NO_PROXY=127.0.0.0/8,172.20.0.0/16" 2、手动下载依赖镜像用 kubeadm config images listk8s.gcr.io/kube-apiserver:v1.13.1k8s.gcr.io/kube-controller-manager:v1.13.1k8s.gcr.io/kube-scheduler:v1.13.1k8s.gcr.io/kube-proxy:v1.13.1k8s.gcr.io/pause:3.1k8s.gcr.io/etcd:3.2.24k8s.gcr.io/coredns:1.2.6下载命令docker pull docker.io/mirrorgooglecontainers/kube-apiserver:v1.13.1 下载镜像docker tag docker.io/mirrorgooglecontainers/kube-apiserver:v1.13.1 k8s.gcr.io/kube-apiserver:v1.13.1 给镜像打标签docker pull docker.io/mirrorgooglecontainers/kube-controller-manager:v1.13.1docker tag docker.io/mirrorgooglecontainers/kube-controller-manager:v1.13.1 k8s.gcr.io/kube-controller-manager:v1.13.1docker pull docker.io/mirrorgooglecontainers/kube-scheduler:v1.13.1docker tag docker.io/mirrorgooglecontainers/kube-scheduler:v1.13.1 k8s.gcr.io/kube-scheduler:v1.13.1docker pull docker.io/mirrorgooglecontainers/kube-proxy:v1.13.1docker tag docker.io/mirrorgooglecontainers/kube-proxy:v1.13.1 k8s.gcr.io/kube-proxy:v1.13.1docker pull docker.io/mirrorgooglecontainers/pause:3.1docker tag docker.io/mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1docker pull docker.io/mirrorgooglecontainers/etcd:3.2.24docker tag docker.io/mirrorgooglecontainers/etcd:3.2.24 k8s.gcr.io/etcd:3.2.24docker pull docker.io/coredns/coredns:1.2.6docker tag docker.io/coredns/coredns:1.2.6 k8s.gcr.io/coredns:1.2.6----------------------------------------------------------------------------- 初始化kubelet
编辑kubelet的配置文件/etc/sysconfig/kubelet,设置其忽略Swap启用的状态错误,内容如下: KUBELET_EXTRA_ARGS="--fail-swap-on=false" 设置kubelet开机自启动 systemctl enable kubelet.service 初始化 kubeadm init --kubernetes-version=v1.13.1 --pod-network-cidr=192.168.0.0/6 --service.cidr=192.168.1.0/12 --ignore-preflight-errors=Swap --kubernetes-version=v1.11.1 #被初始化的k8s版本 --pod-network-cidr=10.244.0.0/16 #pod使用的网络 --service.cidr=10.96.0.0/12 #service使用的网络地址 --ignore-preflight-errors=Swap #双重否定部属用用交换配置 如果在初始化过程中有error报错那么就查看是什么错误一般会报错镜像tag标签错误找不到该镜像 可以把镜像重新打标签当如果看到下列内容则表示初始化成功
Your Kubernetes master has initialized successfully!To start using your cluster, you need to run the following as a regular user: mkdir ~/.kube #创建.kube文件一般会提示用普通用户创建要有sudo权限这边我直接用root用户创建 sudo cp /etc/kubernetes/admin.conf ~/.kube/ #复制admin.conf到./kube文件中 sudo chown $(id -u):$(id -g) $HOME/.kube/config #把./kube的属组属主改为创建用户的属组属主You should now deploy a pod network to the cluster.Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: https://kubernetes.io/docs/concepts/cluster-administration/addons/You can now join any number of machines by running the following on each nodeas root:#用下列命令把node加入集群中来(建议把下列命令保存起来) kubeadm join 192.168.1.179:6443 --token 5m7gg1.czd5td6itn9g2fhz --discovery-token-ca-cert-hash sha256:50c64cac88defae6beecf7bdde9b212094d7cc937b709b94f0baaeaaa4246e7e用root用户创建:mkdir ~/.kubecp /etc/kubernetes/admin.conf ~/.kube/因为应root用户创建的就不用重新指定属组属主kubectl get cs #查看组件健康状态kubectl get nodes #查看个节点信息NAME STATUS ROLES AGE VERSIONmaster NotReady master 19h v1.13.1 #这边显示未开启状态因为这边少一个flannel插件安装flannel插件https://github.com/coreos/flannel #flannel地址和帮助信息图片#如果你要受用安装就执行下面的命令就会自动执行安装kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml#部署完之后再查看节点信息NAME STATUS ROLES AGE VERSIONmaster Ready master 19h v1.13.1#查看组件状态信息(当前master运行的所有pod组件)kubectl get pods -n kube-systemNAME READY STATUS RESTARTS AGEcoredns-86c58d9df4-4frfz 1/1 Running 0 19hcoredns-86c58d9df4-hlr72 1/1 Running 0 19hetcd-master 1/1 Running 0 19hkube-apiserver-master 1/1 Running 0 19hkube-controller-manager-master 1/1 Running 0 19hkube-flannel-ds-amd64-4c7jx 1/1 Running 0 19hkube-flannel-ds-amd64-89m8l 1/1 Running 0 17hkube-flannel-ds-amd64-rmxj9 1/1 Running 0 19hkube-proxy-8pnqs 1/1 Running 0 17hkube-proxy-b4hlj 1/1 Running 0 19hkube-proxy-fzp2m 1/1 Running 0 19hkube-scheduler-master 1/1 Running 0 19h#默认如果不指定名名称空间则名称空间kube-systemkubectl get nsNAME STATUS AGEdefault Active 19hkube-public Active 19hkube-system Active 19h#主节点初始化完成node01 安装初始化
如果用第一种方法让docker自动下载依赖镜像则复制master中docker.service文件到node01中
把master中的k8s.repo和下载的docker-ce的yum仓库配置起来如果在yum过程中有报错则按照master中的方法执行
yum install docker-ce kubelet kubeadm -y1、开启docker服务2、把docker 、 kubelet设置开机自启动 systemctl start docker.service #启动docker systemctl enable docker.service #设置开机自启动 systemctl enable kubelet.service 手动下载kube-proxy 、 pause 镜像并打标签通master中的下载镜像配置把node01节点加入集群中去用刚刚保存的kubeadm job命令kubeadm join 192.168.1.179:6443 --token 5m7gg1.czd5td6itn9g2fhz --discovery-token-ca-cert-hash sha256:50c64cac88defae6beecf7bdde9b212094d7cc937b709b94f0baaeaaa4246e7e --ignore-preflight-errors=Swap #后面加入这句话再主节点上kubectl get nodes 查看系欸但有没有加入进来
kubectl get nodesNAME STATUS ROLES AGE VERSIONmaster Ready master 20h v1.13.1node01 Ready 19h v1.13.1 #已经加入进来了# node02跟node01做同样步骤加入集群
镜像
节点
文件
仓库
命令
配置
用户
信息
标签
状态
组件
集群
名称
手动
错误
服务
内容
地址
插件
方法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
日银互联网科技有限公司
数据库理论方面的面试
2019网络安全大赛
软件开发模型图
读取数据库的数据java
软件开发企业组织结构
北京电商软件开发哪家便宜
软件开发团队疼点
如何关闭云服务器开机密码
山西省网络安全教育平台登录
软件开发桌面秀
网络安全责任书 新闻报道
安徽股票软件开发公司
马来西亚服务器
数据库 测试工具
数据库tns的作用
积木软件开发人
软件开发配置管理
软件开发务虚会发言稿
c 保存临时数据库
交通广告公司网络安全应急演练
战地3找服务器
2019网络安全大赛
蓝田县系统软件开发
改了电脑名字数据库连不上
计算机网络技术和铁路有关吗
重庆c语言软件开发费用是多少
甘肃省公安厅网络安全总队长
dread hunger服务器前端
学习网络安全的app