首页 > 系统相关 >Centos7部署kubernetes单机集群(K8S)

Centos7部署kubernetes单机集群(K8S)

时间:2022-12-08 16:08:25浏览次数:73  
标签:k8s kubernetes Centos7 etc yum docker K8S com


Kubernetes 单机版部署还是比较简单的,下面开始操作吧。

查看内核版本:

cat /etc/redhat-release

Centos7部署kubernetes单机集群(K8S)_xml

关闭selinux

setenforce 0 && sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

关闭默认防火墙

systemctl stop firewalld
systemctl disable firewalld

设置hostname

hostnamectl --static set-hostname master

修改内核参数和模块

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

使内核参数配置生效

sysctl --system
modprobe br_netfilter
lsmod | grep br_netfilter

关闭交换内存,如果不关闭,kubelet服务将无法启动

swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

安装docker 、建议改成国内的源,速度比较快

yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager -y --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum -y install docker-ce-18.06.3.ce-3.el7 docker-ce-cli-18.06.3.ce-3.el7 containerd.io
systemctl start docker
systemctl enable docker

设置国内docker仓库

cat <<EOF > /etc/docker/daemon.json
{
"registry-mirrors": [
"https://3laho3y3.mirror.aliyuncs.com"
]
}
EOF
systemctl restart docker

配置kubernetes yum源,用以安装Kubernetes基础服务及工具,此处使用阿里云镜像仓库源

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=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

说明:

gpgcheck=0:表示对从这个源下载的rpm包不进行校验

repo_gpgcheck=0:某些安全性配置文件会在 /etc/yum.conf 内全面启用 repo_gpgcheck,以便能检验软件库的中继数据的加密签署

如果gpgcheck设为1,会进行校验,就会报错如下,所以这里设为0
failure: repodata/repomd.xml from kubernetes: [Errno 256] No more mirrors to try.
https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/repodata/repomd.xml: [Errno -1] repomd.xml signature could not be verified for kubernetes

安装Kubernetes基础服务及工具

yum -y install kubelet-1.13* kubeadm-1.13* kubectl-1.13*
systemctl start kubelet
systemctl enable kubelet.service

下载k8s相关镜像并打标签:

查看需要镜像

kubeadm config images list

Centos7部署kubernetes单机集群(K8S)_docker_02


下载所需要的镜像:

for i in `kubeadm config images list`; do 
imageName=${i#k8s.gcr.io/}
docker pull registry.aliyuncs.com/google_containers/$imageName
docker tag registry.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
docker rmi registry.aliyuncs.com/google_containers/$imageName
done;

初始化k8s和网络

kubeadm init --kubernetes-version=v1.13.12 --pod-network-cidr=10.100.0.0/16

参数说明:
–pod-network-cidr=10.100.0.0/16 k8s内部的pod节点之间网络可以使用的IP段,不能和service-cidr写一样,如果不知道怎么配,就先用这个10.100.0.0/16

安装成功标志

Centos7部署kubernetes单机集群(K8S)_ci_03

开机启动 && 启动服务

systemctl enable kubelet && systemctl start kubelet

初始化kubectl配置

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

kubectl apply -f https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')

默认k8s的master节点是不能跑pod的业务,需要执行以下命令解除限制

kubectl taint nodes --all node-role.kubernetes.io/master-

查看主节点运行 Pod 的状态

需要一段时间进行init;

kubectl get pods --all-namespaces -o wide

Centos7部署kubernetes单机集群(K8S)_ci_04


等所有 服务都running了

Centos7部署kubernetes单机集群(K8S)_kubernetes_05


查看一下,已经有默认的工作空间了:

Centos7部署kubernetes单机集群(K8S)_ci_06


创建一个自己的命名空间试试:

Centos7部署kubernetes单机集群(K8S)_kubernetes_07

这样就已经初始化好了。


标签:k8s,kubernetes,Centos7,etc,yum,docker,K8S,com
From: https://blog.51cto.com/u_15906694/5922586

相关文章

  • Centos7部署kubernetes中部署dashboard可视化Web 界面
    kubernetes官方提供的可视化界面,你可以使用Dashboard获取运行在集群中的应用的概览信息,也可以创建或者修改Kubernetes资源(如Deployment,Job,DaemonSet等等)。例如,你可以......
  • kubernetes部署mysql5.7(单节点)
    创建mysql的命名空间kubectlcreatenamespacedev-mysql创建四个yuml文件[root@mastermysql]#touchmysql-pv.yaml[root@mastermysql]#touchmysql-pvc.yaml[root@mast......
  • k8s+harbor部署jar包和vue项目
    前置工作:k8s部署docker镜像需要拉取docker镜像,一般企业都是使用的局域网,所以需要在本地搭建一个docker私有仓库。​​将jar包、vue项目打成docker镜像并推送到Harbor本地......
  • centos7查看防火墙状态
    查看防火墙状态:[root@localhost~]#systemctlstatusfirewalld表示防火墙开启中active(running)表示防火墙关闭中inactive(dead)开启防火墙:[root@localhost~]#......
  • centos7下Docker的安装部署
    前言:DevOps的概念在软件开发行业中逐渐流行起来。越来越多的团队希望实现产品的敏捷开发,DevOps使一切成为可能。有了DevOps,团队可以定期发布代码、自动化部署、并将持续......
  • 每天一点基础K8S--K8S中的控制器replicaset
    1、replicaset基础前面都是通过yaml文件创建自主式pod,如果pod中的服务都是通过单纯的重启策略restartPolicy(always、OnFailure、never)来重启pod,但是如果pod运行的node异......
  • centos7安装mysql6.5
    1、配置mysql6.5yum源wget-P.http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpmrpm-ivhmysql-community-release-el6-5.noarch.rpm清理yum源缓......
  • 监控Kubernetes集群证书过期时间的三种方案
    前言Kubernetes中大量用到了证书,比如ca证书、以及kubelet、apiserver、proxy、etcd等组件,还有kubeconfig文件。如果证书过期,轻则无法登录Kubernetes集群,重则整......
  • 如何在一台不能上外网的CentOS7上安装依赖包
    1.先在一台能上外网的CentOS7上下载安装包[root@server101root]#yum-yinstallyum-utils[root@server101root]#mkdirdep[root@server101root]#cddep[roo......
  • 每天一点基础K8S--K8S中的pod生命周期管理--健康性探测
    健康性探测健康性探测可主要分为:startupProbe、livenessProbe和readinessProbe用于探测的三种探针:ExecAction:在容器中执行一个命令,返回码为0表示成功;TCPSocketActio......