k8s有很多种安装方式:kind、minikube、kubeadm,以及官方二进制方式安装; 

kind是一个基于docker方式创建kubenetes的方式;

minikube允许使用mac、linux、windows快速创建一个k8s集群;

kubeadm方式基于二进制快速安装一个集群,是准生成环境的集群也支持多数据节点的集群。

但是需要在生产环境执行的k8s集群需要使用官方发行的二进制进行安装,快速安装方式虽然方便但是屏蔽了很多底层的细节,发现问题很难发现问题,并且基于二进制方式创建也非常利于去理解其运行原理,更有利于后期的维护。

能快速开始搭建也是蛮好的选择,否则就从可能放弃于繁琐的安装过程,kubernetes安装需要满足cpu 至少2核心、内存至少可用的1.8G, 自己的阿里云服务器2G,可用的却不足1.7G,导致我果断快速的买了一个4G的服务器,哭一会儿...

1、准备工作

1)、 docker安装

docker的安装过程可以参考:Docker的基本概念、环境搭建、常用命令

需要修改docker配置 /etc/docker/daemon.json (如果没有目录或文件自行创建)为如下:

{

"registry-mirrors": ["https://mxdu1aof.mirror.aliyuncs.com"],

"exec-opts": ["native.cgroupdriver=systemd"]

}

并保存修改的配置、重启docker

systemctl daemon-reload && systemctl restart docker

2)、关闭防火墙和SeLinux、禁用swap

systemctl stop firewalld && systemctl disable firewalld

setenforce 0

sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/sysconfig/selinux

swapoff -a && sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/sysconfig/selinux

2、下载安装minikube

下载 kubectl和minikube

cd /home/kubernetes

wget http://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl

wget https://storage.googleapis.com/minikube/releases/v1.18.0/minikube-linux-amd64

将minikube名称修改为 minikube: mv minikube-linux-amd64 minikube

修改文件添加执行权限,将包copy到目录/usr/local/bin/ 下

chmod +x kubectl && chmod +x minikube

cp kubectl /usr/local/bin/ && cp minikube /usr/local/bin/

ls /usr/local/bin/ 

查看安装的版本:

kubectl version --client

minikube version

配置阿里的Kubernetes yum源(如果执行时报检查秘钥失败等,则将下面配置中的 gpgcheck=0

repo_gpgcheck=0),如下:

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

更新yum缓存

yum clean all

yum -y makecache

安装bash-completion命令补全以及 安装conntrack

yum -y install bash-completion

source /etc/profile.d/bash_completion.sh

yum install -y conntrack

下载minikube start所需要的镜像,通过阿里云镜像网下载

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/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 && \

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7 && \

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v1.8.1

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 k8s.gcr.io/etcd:3.4.3-0 && \

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7 k8s.gcr.io/coredns:1.6.7 && \

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v1.8.1 gcr.io/k8s-minikube/storage-provisioner:v1.8.1

出现问题需要下面的脚本处理

yum -y install socat                      # 安装socat

systemctl enable kubelet.service               # 在hosts中配置名称

echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables        # 在bridge-nf-call-iptables 写入

再次执行start命令,并且查看是否成功

minikube start --vm-driver=none --kubernetes-version='v1.18.0'

minikube status

安装minikube dashboard,先执行 ifconfig 查看当前的ip为: 172.20.85.70

启动kubect proxy

kubectl proxy --port=8000 --address='1 172.20.85.70' --accept-hosts='^.*' &

运行dashboard:minikube dashboard

浏览器输入(使用的阿里云,需要在安全组规则处开放8000端口,并且使用外网ip访问):

http://47.94.100.66:8000/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/#/overview?namespace=default

这里应该有掌声

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐