物理机安装minikube

Kubernetes(k8s)是自动化容器操作的开源平台,基于这个平台,你可以进行容器部署,资源调度和集群扩容等操作。如果你曾经用过Docker部署容器,那么可以将Docker看成Kubernetes底层使用的组件,Kubernetes是Docker的上层封装,通过它可以很方便的进行Docker集群的管理。今天我们使用minikube在单机上进行Kubernetes集群的部署,目的是让我们对k8s有个初步的认识。

Minikube 支持以下 Kubernetes 功能

  • DNS

  • NodePorts

  • ConfigMaps 和 Secrets

  • Dashboards

  • 容器运行时: Docker、CRI-O 以及 containerd

  • 启用 CNI (容器网络接口)

  • Ingress

  1. 关闭安全策略

/usr/bin/systemctl stop firewalld
/usr/bin/systemctl disable firewalld
/usr/sbin/iptables -F && /usr/sbin/iptables -X && /usr/sbin/iptables -F -t nat && /usr/sbin/iptables -X -t nat && /usr/sbin/iptables -P FORWARD ACCEPT
/usr/sbin/iptables -P FORWARD ACCEPT
/usr/bin/sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

2. 安装docker

yum install -y epel-release
/usr/bin/yum install -y conntrack wget net-tools jq yum-utils ntpdate ntp ipvsadm ipset device-mapper-persistent-data iptables curl sysstat libseccomp wget lrzsz bash-completion
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce-18.09.4 docker-ce-cli-18.09.4
systemctl start docker
systemctl enable docker

3.加载所有节点IPVS模块

usr/sbin/modprobe ip_vs
/usr/sbin/modprobe ip_vs_rr
/usr/sbin/modprobe ip_vs_wrr
/usr/sbin/modprobe ip_vs_sh
/usr/sbin/modprobe nf_conntrack_ipv4

4.关闭swap缓存

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

5.优化内核参数

cat >/etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
vm.swappiness=0 # 禁止使用 swap 空间,只有当系统 OOM 时才允许使用它
vm.overcommit_memory=1 # 不检查物理内存是否够用
vm.panic_on_oom=0 # 开启 OOM
vm.swappiness=0
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=1048576
fs.file-max=52706963
fs.nr_open=52706963
net.ipv6.conf.all.disable_ipv6=1
net.netfilter.nf_conntrack_max=2310720
EOF

modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf

以上步骤就是minikube的初始化环境,同时也是kubeadm的初始化环境,只是运行不同的命令而已,minikube内部就是运行kubeadm。

6.下载软件

wget https://storage.googleapis.com/kubernetes-release/release/v1.16.0/bin/linux/amd64/kubectl
chmod +x ./kubectl
mv ./kubectl /usr/local/bin/kubectl

curl -Lo minikube https://storage.googleapis.com/minikube/releases/v1.4.0/minikube-linux-amd64 /
  && chmod +x minikube

国外网站,很慢,最好自己找资源(FQ)下载这两个文件,我下载的k8是1.16.0版本,想下载最新版或指定版本就更改版本号就行。

7.运行minikubu

minikube start --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' --vm-driver=none

minikube start 命令可用于启动集群。
此命令将创建并配置一台虚拟机,使其运行单节点 Kubernetes
集群。指定国内镜像,可省却国外下载镜像步骤,去网上翻minikube的文章,会发现基本上都是各种报错,我是在一台裸机上部署的,除了开发工具啥都没装,
此命令还会配置您的 
kubectl 安装,以便使其能与您的 Kubernetes 集群正确通信。

指定 VM 驱动程序

您可以通过将 --vm-driver=<enter_driver_name> 参数添加到 minikube start 来更改 VM 驱动程序。 例如命令:

minikube start --vm-driver=<driver_name>

Minikube 支持以下驱动程序

注意: 有关支持的驱动程序以及如何安装插件的详细信息,请参阅驱动程序。

  • virtualbox

  • vmwarefusion

  • kvm2 (驱动安装)

  • hyperkit (驱动安装)

  • hyperv (驱动安装) 请注意,下面的 IP 是动态的,可以更改。可以使用 minikube ip 检索。

  • vmware (驱动安装) (VMware 统一驱动)

  • none (在主机上运行Kubernetes组件,而不是在 VM 中。使用该驱动依赖 Docker (安装 Docker) 和 Linux 环境)

成功显示

* minikube 1.6.2 is available! Download it: https://github.com/kubernetes/minikube/releases/tag/v1.6.2
* To disable this notice, run: 'minikube config set WantUpdateNotification false'

! minikube v1.4.0 on Centos 7.7.1908
* Using image repository registry.cn-hangzhou.aliyuncs.com/google_containers
* Running on localhost (CPUs=4, Memory=7521MB, Disk=51175MB) ...
* OS release is CentOS Linux 7 (Core)
* Preparing Kubernetes v1.16.0 on Docker 18.09.4 ...
* Downloading kubeadm v1.16.0
* Downloading kubelet v1.16.0
* Pulling images ...
* Launching Kubernetes ... 
* Configuring local host environment ...
* 
! The 'none' driver provides limited isolation and may reduce system security and reliability.
! For more information, see:
  - https://minikube.sigs.k8s.io/docs/reference/drivers/none/
* 
! kubectl and minikube configuration will be stored in /root
! To use kubectl or minikube commands as your own user, you may need to relocate them. For example, to overwrite your own settings, run:
* 
  - sudo mv /root/.kube /root/.minikube $HOME
  - sudo chown -R $USER $HOME/.kube $HOME/.minikube
* 
* This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true
* Waiting for: apiserver proxy etcd scheduler controller dns
* Done! kubectl is now configured to use "minikube"

在运行Pulling images的时候另开个终端运行:
systemctl enable kubelet

在Pulling images的时候很慢,因为镜像很多,有的很大,比较慢,可以通过docker images查看已经下载完成的镜像,镜像组件功能在这里不做介绍。

registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver            v1.16.0             b305571ca60a        4 months ago        217MB
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy                v1.16.0             c21b0c7400f9        4 months ago        86.1MB
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager   v1.16.0             06a629a7e51c        4 months ago        163MB
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler            v1.16.0             301ddc62b80b        4 months ago        87.3MB
registry.cn-hangzhou.aliyuncs.com/google_containers/etcd                      3.3.15-0            b2756210eeab        4 months ago        247MB
registry.cn-hangzhou.aliyuncs.com/google_containers/coredns                   1.6.2               bf261d157914        5 months ago        44.1MB
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-addon-manager        v9.0.2              bd12a212f9dc        5 months ago        83.1MB
registry.cn-hangzhou.aliyuncs.com/google_containers/pause                     3.1                 da86e6ba6ca1        2 years ago         742kB
registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner       v1.8.1              4689081edb10        2 years ago         80.8MB

8.添加快捷键

source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >>~/.bashrc

9.测试

kubectl get nodes
NAME       STATUS   ROLES    AGE    VERSION
minikube   Ready    master   2m8s   v1.16.0

kubectl get pods -n kube-system
NAME                               READY   STATUS    RESTARTS   AGE
coredns-67c766df46-2n8bz           1/1     Running   1          43m
coredns-67c766df46-stttx           1/1     Running   1          43m
etcd-minikube                      1/1     Running   1          42m
kube-addon-manager-minikube        1/1     Running   1          42m
kube-apiserver-minikube            1/1     Running   1          42m
kube-controller-manager-minikube   1/1     Running   1          42m
kube-proxy-2v42d                   1/1     Running   1          43m
kube-scheduler-minikube            1/1     Running   1          42m
storage-provisioner                1/1     Running   1          42m

10. 删除集群

minikube delete
rm -rf /root/.minikube

原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/183494.html

(0)
上一篇 2021年11月2日
下一篇 2021年11月2日

相关推荐

发表回复

登录后才能评论