viva
  • 主页
  • 开发
    • IDE环境
      • Vim
      • VSCode
        • code-server
        • theia
    • Golang手册
    • Ansible
    • SaltStack
      • salt-api
    • Python
      • Q&A
      • Hello,world!
      • 类型
        • 数字
        • 字符串
        • 列表
        • 元组
        • 集合
        • 字典
      • 语法
        • 流程控制
        • 循环
      • 工具
        • pip
        • pyenv
        • selenium
      • 示例
    • Shell
    • Vue
      • ant-design
      • vue-material
    • Java
  • 随笔
    • WSL2
    • Git
    • Markdown
      • mermaid
    • Linux
      • 时钟同步
      • 账号
      • 文件
      • SSH
      • systemd
      • TLS加密
        • Openssl
      • 存储
        • rsync
        • NFS
      • 路由
      • 日志采集
        • Journalctl
        • Fluentd
          • 根据字段匹配对日志进行结构化
        • Logstash
    • 虚拟化
      • Hyper-V
      • PXE
    • 命令行工具
      • zsh
    • Nexus3
    • 堡垒机
      • JumpServer
    • 测试工具
      • ioping
      • apache bench
      • dd
      • postman
    • 开源项目管理
      • Github
    • 软件包管理
    • 网络镜像源
    • 网关
      • Nginx
  • 存储
    • Ceph
      • 安装
      • 故障处理
    • Etcd
    • Mysql
  • 网络
    • Overlay网络
    • IPVS
    • 网络工具
      • tshark
      • tcpdump
    • 防火墙
      • nftables
      • firewalld
      • iptables
    • 域名解析
      • dig
      • nslookup
      • dnsmasq
    • 代理
      • Clash
      • Redsocks
      • Redsocks2
      • COW
      • Proxfier
  • 云原生
    • 容器
      • Docker
        • Dockerfile
        • docker-compose
      • Podman
      • 原理
        • Chroot
        • Namespace
        • Cgroup
    • 镜像仓库
      • Harbor
    • Kubernetes
      • 部署
        • Kind
        • Minikube
        • kubespray
      • CNI
        • Flannel
        • OVS
        • Calico
      • Operator
        • OperatorSDK
      • StorageClass
      • Q&A
    • Openshift
      • 集群部署
      • 快速使用
    • Prometheus
      • prometheus-operator
      • kube-prometheus
      • Thanos
        • 组件
          • Bucket
          • Check
          • Compact
          • Querier
          • Receiver
          • Ruler
          • Sidecar
          • Store
        • 参考资料
      • Cortex
        • 组件
          • Alertmanager
          • Config
          • Distributor
          • Ingester
          • Querier
          • Query Frontend
          • Ruler
        • 参考资料
      • Thanos与Cortex方案对比
      • 参考资料
      • Q&A
    • Skywalking
    • Rook
    • Helm
    • Istio
    • 应用部署
      • Nexus
      • RabbitMQ
    • 参考资料
  • DevOps
    • 开源DevOps平台
    • CICD
      • Jenkins
    • 参考资料
  • 机器学习
    • Kubeflow
      • 示例
由 GitBook 提供支持
在本页
  • 部署
  • 环境准备
  • 安装kubectl
  • 安装minikube
  • 关闭防火墙
  • 关闭swap
  • 启动minikube
  • 启动ingress
  • 启动dashboard
  • Q&A
  • 如何在CentOS8中运行
  • 如何开启AdmissionWebhook
  • 如何查看启动日志
  • 国内网络如何拉取gcr.io镜像
  1. 云原生
  2. Kubernetes
  3. 部署

Minikube

部署

环境准备

操作系统:CentOS 7

docker-ce版本:19.03.5

minikube版本:1.3.1

kubernetes版本:1.15.5

安装kubectl

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
yum install -y kubectl-1.15.5

安装minikube

yum install -y https://storage.googleapis.com/minikube/releases/latest/minikube-1.3.1.rpm

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

关闭swap

swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab

启动minikube

minikube start --vm-driver=none --kubernetes-version v1.15.5

启动ingress

minikube addons enable ingress

启动dashboard

kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default
minikube dashboard --url=true

得到如下输出,dashboard侦听在localhost地址上

* Verifying dashboard health ...
* Launching proxy ...
* Verifying proxy health ...
http://127.0.0.1:35951/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/

如果需要通过外部访问,按CTRL+C中断,并使用以下命令以NodePort方式暴露服务

kubectl delete svc kubernetes-dashboard -n kube-system
kubectl expose deployment kubernetes-dashboard --type=NodePort --port=80 -n kube-system
kubectl get svc kubernetes-dashboard -n kube-system

Q&A

如何在CentOS8中运行

默认情况下minikube使用iptables模式启动kube-proxy,在centos8中使用的是nftables,与kube-proxy使用的iptables指令不兼容,因而无法写入规则并导致ip地址转发不生效,解决这个问题的一种途径是以IPVS方式启动kube-proxy

1. 编辑kube-proxy配置

kubectl edit configmap kube-proxy -n kube-system

2. 修改mode: 'ipvs'

3. 加载内核ipvs模块

modprobe ip_vs_rr
modprobe ip_vs_sh
modprobe ip_vs_wrr
modprobe ip_vs

由于kube-proxy中使用的iptables指令与CentOS8不兼容,因此networkpolicy不会生效

如何开启AdmissionWebhook

在启动命令中添加以下参数

--extra-config=apiserver.enable-admission-plugins="NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"

如何查看启动日志

在启动命令中添加以下参数

-v 10 --logtostderr

国内网络如何拉取gcr.io镜像

在启动命令中添加以下参数

 --image-repository="registry.cn-hangzhou.aliyuncs.com/google_containers"
上一页Kind下一页kubespray

最后更新于5年前