K8S安装部署在centos7下

所有节点操作

K8S的安装部署可以参考文档:

需要在每一台机器上执行的操作

l 各节点禁用防火墙

# systemctl stop firewalld

# systemctl disable firewalld

l 禁用SELINUX:

# setenforce 0

# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g‘ /etc/selinux/config

#

SELINUX=disabled

l 创建/etc/sysctl.d/k8s.conf文件,添加如下内容:

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

net.ipv4.ip_forward = 1

执行命令使修改生效。

# modprobe br_netfilter

# sysctl -p /etc/sysctl.d/k8s.conf

l 在所有的Kubernetes节点上执行以下脚本:

# cat > /etc/sysconfig/modules/ipvs.modules <<EOF

#!/bin/bash

modprobe -- ip_vs

modprobe -- ip_vs_rr

modprobe -- ip_vs_wrr

modprobe -- ip_vs_sh

modprobe -- nf_conntrack_ipv4

EOF

# chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4

上面脚本创建了的/etc/sysconfig/modules/ipvs.modules文件,保证在节点重启后能自动加载所需模块。 使用lsmod | grep -e ip_vs -e nf_conntrack_ipv4命令查看是否已经正确加载所需的内核模块。

l 接下来还需要确保各个节点上已经安装了ipset软件包

# yum -y install ipset

l 为了便于查看ipvs的代理规则,最好安装一下管理工具ipvsadm

# yum -y install ipvsadm

部署master节点

安装kubeadm和kubelet:
配置kubernetes.repo的源,由于官方源国内无法访问,这里使用阿里云yum源

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

测试地址https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64是否可用,如果不可用需要×××

# curl https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/

# yum -y makecache fast

# yum install -y kubelet kubeadm kubectl

Kubernetes 1.8开始要求关闭系统的Swap,如果不关闭,默认配置下kubelet将无法启动。 关闭系统的Swap方法如下:

#  swapoff -a

修改 /etc/fstab 文件,注释掉 SWAP 的自动挂载,

# UUID=2d1e946c-f45d-4516-86cf-946bde9bdcd8 swap                    swap    defaults        0 0

使用free -m确认swap已经关闭。 swappiness参数调整,修改/etc/sysctl.d/k8s.conf添加下面一行:

vm.swappiness=0

使修改生效

# sysctl -p /etc/sysctl.d/k8s.conf

使用kubeadm init初始化集群
开机启动kubelet服务:

systemctl enable kubelet.service

配置Master节点

# mkdir working && cd working

生成配置文件

# kubeadm config print init-defaults ClusterConfiguration > kubeadm.yaml

修改配置文件

# vim kubeadm.yaml

# 修改imageRepository:k8s.gcr.io

imageRepository: registry.aliyuncs.com/google_containers

# 修改KubernetesVersion:v1.15.0

kubernetesVersion: v1.15.0

# 配置MasterIP

advertiseAddress: 192.168.1.21

# 配置子网网络

networking:

dnsDomain: cluster.local

podSubnet: 10.244.0.0/16

serviceSubnet: 10.96.0.0/12

scheduler: {}

kubeadm init --config kubeadm.yaml --ignore-preflight-errors=Swap

初始化出错[kubelet-check] Initial timeout of 40s passed.的时候,可以参考

https://blog.csdn.net/gs80140/article/details/92798027

注意这一条命令需要保存好(添加集群使用) 
kubeadm join 192.168.169.21:6443 –token 4qcl2f.gtl3h8e5kjltuo0r \ –discovery-token-ca-cert-hash sha256:7ed5404175cc0bf18dbfe53f19d4a35b1e3d40c19b10924275868ebf2a3bbe6e

下面的命令是配置常规用户如何使用kubectl访问集群:

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

查看一下集群状态,确认个组件都处于healthy状态:

# kubectl get cs

集群初始化如果遇到问题,可以使用下面的命令进行清理:

# kubeadm reset

# ifconfig cni0 down

# ip link delete cni0

# ifconfig flannel.1 down

# ip link delete flannel.1

# rm -rf /var/lib/cni/

安装Pod Network
接下来安装flannel network add-on:

# mkdir -p ~/k8s/

# cd ~/k8s

# curl -O https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

# kubectl apply -f  kube-flannel.yml

kubectl get pod -n kube-system

测试集群DNS是否可用

kubectl run curl --image=radial/busyboxplus:curl -it

 

部署node节点

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager     --add-repo     https://download.docker.com/linux/centos/docker-ce.repo

yum install -y --setopt=obsoletes=0 docker-ce

安装kubeadm和kubelet:
配置kubernetes.repo的源,由于官方源国内无法访问,这里使用阿里云yum源

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

测试地址https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64是否可用,如果不可用需要×××

# curl https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/

# yum -y makecache fast

# yum install -y kubelet kubeadm kubectl

systemctl start docker

systemctl enable docker

Node节点加入集群

kubeadm join 192.168.30.30:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:eac10da3dbc0414542f3a4c0f220264706b693467611e856844229d1b96b9f6d

vi /etc/sysconfig/kubelet  KUBELET_EXTRA_ARGS="--fail-swap-on=false" (不执行此操作导致node节点一直为notready)

原文地址:https://www.cnblogs.com/niewx5201314/p/11663137.html

时间: 2024-11-02 07:57:52

K8S安装部署在centos7下的相关文章

ceph0.94安装部署(centos7.1)

一:CEPH简介 http://michaelkang.blog.51cto.com/1553154/1669844 二:ceph集群硬件的选择 http://michaelkang.blog.51cto.com/1553154/1669841 三:集群安装配置环境介绍 1:系统: more /etc/redhat-release CentOS Linux release 7.1.1503 (Core) 2:内核: uname -a Linux localhost.localdomain 3.1

《Zabbix安装部署》-Centos7

1.Zabbix简介 Zabbix是一个企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利:http://www.zabbix.com/documentation/2.0/manual/quickstart.Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置,是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源软件,主要由2部分构成,zabbixserver与可选组件zabbix agent.

Supervisor的安装部署(Centos7)

Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统.它可以很方便的监听.启动.停止.重启一个或多个进程.用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制. 因为Supervisor是Python开发的,注意 super

【安装MongoDB】CentOS7 下安装NodeJs+Express+MongoDB+Redis

MongoDB,V3.2版本,官网说的很详细,见链接:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/ 1.创建配置文件, vi /etc/yum.repos.d/mongodb-org-2.6.repo [mongodb-org-3.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongo

【安装Redis】CentOS7 下安装NodeJs+Express+MongoDB+Redis

Redis,V3.2,官网l官方链接:http://www.redis.io/download,参考:http://blog.csdn.net/mlks_2008/article/details/19001595 1.安装Redis wget http://download.redis.io/releases/redis-3.2.1.tar.gz tar xzf redis-3.2.1.tar.gz cd redis-3.2.1 make 2.设置Redis为开机启动 redis的命令会被拷贝到

k8s安装部署

1. 安装阿里yum源 2. yum -y install kubernetes etcd [[email protected] yum.repos.d]# cd /etc/kubernetes/[[email protected] kubernetes]# lsapiserver config controller-manager kubelet proxy scheduler

Centos7下Mysql8.0安装手册 以及 一些坑点总结

MySQL 8 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 一.  Mysql8.0版本相比之前版本的一些特性 1) 默认编码utf8默认编码使用utf8mb4, utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符历史,MySQL数据库的 "utf8"并不是真正概念里的 UTF-8.MySQL中的"utf8"编码只支持最大3字节每字符.真正的大家正在使用

Kubernetes安装部署

k8s安装部署方法 手动部署:部署k8s自身,让k8s相关组件都运行为系统守护进程 GitHub上托管的Ansible playbook kubeadm安装部署:所有组件能运行为容器全部运行为容器,只有kubelet运行在主机上,仓库托管在gcr之上 模拟环境,一个节点实现 使用kubeadm安装部署kubernetes集群 部署环境: 前提: 1.各节点时间同步: 2.各节点主机名称解析:dns OR hosts: 3.各节点iptables及firewalld服务被disable: kube

centos7下的k8s+dashboard集群部署---(1)环境准备及docker部署

前言:之前部署的时候看到网上的教程非常多,大部分没大方向错误,但是经过多次实际性的验证后发现避免不了会有一些错误,为此整理一篇总结部署:准备工作:本次部署拓扑为1master,2node节点,准备工作包含所有设备:a)关闭各节点防火墙,并设置开机关闭systemctl stop firewalldsystemctl disable firewalldb)关闭系统selinuxsetenforce 0sed -i 's/enforcing/disabled/' /etc/selinux/confi