单机版kubernetes安装

准备阶段:CentOS 7系统下,处理器为2,内存为4GB

先进入root模式

[linsun@master1 ~]$ su -
密码:
上一次登录:二 1月 18 19:05:44 CST 2022从 master1pts/3 上
[root@master1 ~]# 
  1. 关闭防火墙
    [root@master1 ~]# systemctl stop firewalld 
    [root@master1 ~]# systemctl disable firewalld
  2. 关闭selinux
    setenforce 0

    此时出现提示:“setenforce: SELinux is disabled” 

    说明selinux已经被彻底的关闭了,如果要重新开启selinux,需按下面步骤:vi /etc/selinux/config 更改为:SELINUX=1 且必须重启linux,不重启是没办法立刻开启selinux的,重启完以后,使用getenforce,setenforce等命令就不会报“setenforce: SELinux is disabled”了

  3. 修改文件/etc/selinux/config
    cat /etc/selinux/config
    

  4.  禁用swap

    swapoff -a
  5. 修改内核参数和模块

  •  修改文件/etc/sysctl.d/k8s.conf 
vim /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1      
  • 执行命令
sysctl --system

执行完结果如下图:

6.安装docker

# 安装必要的一些系统工具
sudo yum install -y 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
# 安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# 开启Docker服务
systemctl start docker
# 设置开机自启
systemctl enable docker

安装过程:

安装后执行:docker version看是否安装成功

[root@master1 ~]# docker version
Client:
 Version:           18.06.3-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        d7080c1
 Built:             Wed Feb 20 02:26:51 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.3-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       d7080c1
  Built:            Wed Feb 20 02:28:17 2019
  OS/Arch:          linux/amd64
  Experimental:     false

安装kubernates组件

修改文件:/etc/yum.repos.d/kubernetes.repo

vim /etc/yum.repos.d/kubernetes.repo

未修改之前:

[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

 修改之后:

[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg                 

 接着执行以下命令:

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

如图所示执行结果:

 下载kubernetes镜像并打标签:

docker pull mirrorgooglecontainers/kube-apiserver:v1.13.3

docker pull mirrorgooglecontainers/kube-controller-manager:v1.13.3

docker pull mirrorgooglecontainers/kube-scheduler:v1.13.3

docker pull mirrorgooglecontainers/kube-proxy:v1.13.3

docker pull mirrorgooglecontainers/pause:3.1

docker pull mirrorgooglecontainers/etcd:3.2.24

docker pull coredns/coredns:1.2.6
 
# 打标签
docker tag mirrorgooglecontainers/kube-apiserver:v1.13.3 k8s.gcr.io/kube-apiserver:v1.13.3

docker tag mirrorgooglecontainers/kube-controller-manager:v1.13.3 k8s.gcr.io/kube-controller-manager:v1.13.3

docker tag mirrorgooglecontainers/kube-scheduler:v1.13.3 k8s.gcr.io/kube-scheduler:v1.13.3

docker tag mirrorgooglecontainers/kube-proxy:v1.13.3 k8s.gcr.io/kube-proxy:v1.13.3

docker tag mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1

docker tag mirrorgooglecontainers/etcd:3.2.24 k8s.gcr.io/etcd:3.2.24

docker tag coredns/coredns:1.2.6 k8s.gcr.io/coredns:1.2.6

下载完成后:通过执行命令列出本地镜像

docker images

初始化:

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

 出现问题:

“this version of kubeadm only supports deploying clusters with the control plane version >= 1.17.0. Current version: v1.13.3
To see the stack trace of this error execute with --v=5 or higher
"

是因为两者版本有问题

解决方法:

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

 再执行上述命令之后出现如下错误:

“[ERROR KubeletVersion]: the kubelet version is higher than the control plane version. This is not a supported version skew and may lead to a malfunctional cluster. Kubelet version: "1.18.0" Control plane version: "1.17.0"”

再执行以下命令:

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

 又出现了镜像导入失败的错误:原来是之前的镜像是1.13.3的,版本改变,对应的镜像也要改变

 又通过如下命令导入相应镜像:(通过阿里云拉取)

docker pull  registry.cn-hangzhou.aliyuncs.com/google_containers/k8s.gcr.io/kube-apiserver:v1.18.0/kube-apiserver:v1.18.0

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.18.0

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.18.0


docker pull  registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.18.0

docker pull  registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2

docker pull  registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3-0

docker pull coredns/coredns:1.6.7

 之后发现还是有错误,原来是之前镜像的标签没有更新,无法找到导入正确的镜像

 然后给新导入的镜像打标签:

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.18.0 k8s.gcr.io/kube-apiserver:v1.18.0

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.18.0 k8s.gcr.io/kube-controller-manager:v1.18.0

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.18.0 k8s.gcr.io/kube-scheduler:v1.18.0

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.18.0 k8s.gcr.io/kube-proxy:v1.18.0

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3-0 k8s.gcr.io/etcd:3.4.3-0

docker tag coredns/coredns:1.6.7 k8s.gcr.io/coredns:1.6.7
 

至此终于不报错了 离成功更近一步!><

 接下来按提示输入命令

[root@master1 ~]#  mkdir -p $HOME/.kube
[root@master1 ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master1 ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
[root@master1 ~]# kubectl apply -f https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')

 接着执行如下命令看是否成功:

[root@master1 ~]# kubectl get pods --all-namespaces
NAMESPACE     NAME                              READY   STATUS     RESTARTS   AGE
kube-system   coredns-66bff467f8-5t2fw          0/1     Pending    0          71m
kube-system   coredns-66bff467f8-qvfqp          0/1     Pending    0          71m
kube-system   etcd-master1                      1/1     Running    0          72m
kube-system   kube-apiserver-master1            1/1     Running    0          72m
kube-system   kube-controller-manager-master1   1/1     Running    0          72m
kube-system   kube-proxy-2hxlv                  1/1     Running    0          71m
kube-system   kube-scheduler-master1            1/1     Running    0          72m
kube-system   weave-net-nnzfb                   0/2     Init:0/1   0          10s
[root@master1 ~]# 

再通过如下命令查看结点信息:(发现一个结点存在)

[root@master1 ~]# kubectl get nodes
NAME      STATUS   ROLES    AGE   VERSION
master1   Ready    master   74m   v1.18.0

以上是全过程(撒花完结)><

参考教程:单机版搭建kubernetes(K8s)_小石头小石子小石灰的博客-CSDN博客_单机k8s搭建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值