centos7系统搭建k8s(minikube)

1. 官网安装教程(选择RPM package)

  • 下载rpm安装包: curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.aarch64.rpm

  • 安装: sudo rpm -ivh minikube-latest.aarch64.rpm

  • 新增启动账号(minikube不能通过root账号启动,minikube相关操作都用这个新增的用户):  useradd -g docker -G wheel john
    -g:默认组(用户登录时就是这个组) -G: 其他群组  wheel:sudo组(加到这个组里才会有sudo权限)
    为新用户设置密码: passwd john

  • 切换到新增用户并启动minikube: su john & minikube start

  • 启动控制台: minikube dashboard
    需要注意的是,minikube容器如果关闭的话,直接通过docker start minikube启动容器的话,
    执行minikube dashboard会报错。必须要通过minikube start启动k8s集群,才能通过minikube dashboard启动控制台

  • 创建代理访问minikube控制台: /usr/local/bin/kubectl proxy --port=36352--address='内网ip' --accept-hosts='^.*' 
    43780端口是执行minikube dashboard 暴露的端口 172.X.0.8这个是服务器内网地址
    控制台访问链接: http://外网ip:36352/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/#/node?namespace=default

  • 新建部署: kubectl create deployment k8s-nginx --image=nginx:1.10

  • 新建服务: kubectl expose deployment/k8s-nginx --type=NodePort --port=8080

  • 待研究 -- linux后台启动代理minikube dashboard 和 dashboard 代理

  • 待研究 -- k8s暴露容器服务给外网访问

  • 待研究 -- ingress

  • 控制台示例,可以查看并在界面操作deployments,pods,services
    centos7系统搭建k8s(minikube)

2. k8s核心概念

  • 节点(master): 中控节点,负责管控整个集群
  • 节点(node): 工作节点,运行应用的节点,可以理解为机器(虚拟机或者物理机)。
  • pod: 逻辑主机,可以结合docker容器来理解,包含一个应用正常运行的一整套环境,一个pod对应一个应用实例。
  • 部署(deployment): 一个应用的部署节点,负责创建和更新应用实例,部署后会生成对应的一个或多个pod,如果pod被删除或者down调,系统会根据配置自动生成新pod。deploy也是合法的关键字
  • 服务(service): 一组pod逻辑集,暴露实例给集群外部访问,服务类型有ClusterIP,NodePort,LoadBalancer,or ExternalName。Default is 'ClusterIP'
  • 代理: 通过代理允许外部访问集群内部资源

3. 常用minikube命令

  • minikube start  启动k8s集群

  • minikube dashboard 启动控制台 

  • minikube version 查看版本号

  • minikube pause 暂停集群

  • minikube stop 停止集群

  • minikube config set memory 16384 配置集群内存

  • minikube addons list 查看已安装的附加服务

  • minikube start -p aged --kubernetes-version=v1.16.1  在老版本k8s上运行集群

  • minikube delete --all 删除所有的minikube搭建的k8s集群

  • minikube kubectl version 查看kubectl版本号
    如果想直接用kubctl 需要把kubectl考的系统path路径下如/usr/local/bin目录下
    find / -name kubectl
    cp /var/lib/docker/volumes/minikube/_data/lib/minikube/binaries/v1.20.0/kubectl /usr/local/bin/kubectl

  • 更多命令查看minikube --help ,查看子选项使用方式可以对子选项使用--help,如minikube addons --help

4. 常用kubectl命令

  • kubectl cluster-info 查看k8s集群信息
  • kubectl get nodes/pods/deployments/services 查看所有节点/pod/部署/服务 (资源单复数都可以: 如 node和nodes都是合法的)
  • kubectl describe nodes/deployments/services 查看节点/pod/部署/服务详细信息 (资源单复数都可以: 如 node和nodes都是合法的)
  • kubectl create deployment k8s-nginx --image=nginx:1.10 创建一个部署
    kubectl expose deployment/k8s-nginx --type=NodePort --port=8080 创建一个服务通过节点端口的形式暴露应用
    minikube service hello-minikube 启动一个web应用
    kubectl port-forward service/hello-minikube 7080:8080 通过端口映射把实例暴露到本地端口可以通过http://localhost:7080/访问
  • kubectl create deployment balanced --image=nginx:1.10 创建一个部署
    kubectl expose deployment/balanced --type=LoadBalancer --port=8080 创建一个服务通过负责均衡的形式暴露应用
    minikube tunnel 创建负载均衡协调器
  • /usr/local/bin/kubectl proxy  创建代理
  • 更多命令查看 kubectl --help 查看子选项使用方式可以对子选项使用--help,如kubectl create --help,kubectl create deployment --help 

 

 

上一篇:Deployment的暂停和恢复


下一篇:Deployment的伸缩扩容