centos7安装minikube阿里云版

Posted gsls200808

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos7安装minikube阿里云版相关的知识,希望对你有一定的参考价值。

安kuboard需要两台机器,并且对系统小版本号限制太严格了。所以考虑用minikube

安装minikube之前需要安装docker kubectl

1.安装docker

执行如下命令安装

​yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r
yum install -y docker-ce-18.06.3.ce
systemctl start docker.service
systemctl enable docker.service

验证

docker version

2.安装kubectl

执行命令

​curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

验证

kubectl version --client

3.授权用户

minikube执行需要普通用户,需要做一些授权,如无特殊说明,添加K8S用户后的命令都在K8S用户下执行

用户组授权

adduser K8S //创建K8S用户
passwd K8S //设置密码

加入sudo组

usermod -aG wheel K8S

切换到K8S用户

su K8S

执行如下命令将K8S用户加到docker组

sudo groupadd docker //创建docker组
sudo gpasswd -a $USER docker //$USER为上面创建的K8S用户
newgrp docker
docker version

4.安装minikube

下载阿里云版minikube

curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.20.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

#minikube config set driver docker

启动一个k8s节点

minikube start

启用dashboard 看看集群

这里的-dashboard就是kubernetes-dashboard

运行以下命令启动

minikube dashboard

如果安装了图形界面,会跳转到浏览器看结果,打开的是 kubernetes-dashboard

如果没安装图形界面

控制台会出现一个127.0.0.1的地址,可以简单的curl看结果

​curl http://127.0.0.1:46595/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

其他局域网电脑需要通过以下方式添加代理访问

​kubectl proxy --port=8001 --address='192.168.3.55' --accept-hosts='^.*' &
http://192.168.3.55:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

端口后面的url路径根据控制台返回拷贝,不同版本不一样

可能需要将8001添加进防火墙

firewall-cmd --permanent --add-port=8001/tcp
firewall-cmd --reload

5.第三方GUI工具查看集群

5.1使用 lens 查看集群

除了使用原生的 dashboard,你也可以使用 lens 来查看这个集群的情况。Lens是一个基于electron开发的IDE界面,所以图形界面是必须安装的,并且只能本地查看

官网

Lens | The Kubernetes IDE

下载安装

​wget https://api.k8slens.dev/binaries/Lens-5.4.6-latest.20220428.1.x86_64.rpm
yum install Lens-5.4.6-latest.20220428.1.x86_64.rpm

这里依赖较多,估计80多个,不用rpm -ivh浪费时间了

cat ~/.kube/config

File -->Add Clusters 将~/.kube/config文件内容拷贝进来即可,我这里的内容如下

apiVersion: v1
clusters:
- cluster:
    certificate-authority: /home/K8S/.minikube/ca.crt
    extensions:
    - extension:
        last-update: Tue, 10 May 2022 11:03:34 CST
        provider: minikube.sigs.k8s.io
        version: v1.20.0
      name: cluster_info
    server: https://192.168.49.2:8443
  name: minikube
contexts:
- context:
    cluster: minikube
    extensions:
    - extension:
        last-update: Tue, 10 May 2022 11:03:34 CST
        provider: minikube.sigs.k8s.io
        version: v1.20.0
      name: context_info
    namespace: default
    user: minikube
  name: minikube
current-context: minikube
kind: Config
preferences: 
users:
- name: minikube
  user:
    client-certificate: /home/K8S/.minikube/profiles/minikube/client.crt
    client-key: /home/K8S/.minikube/profiles/minikube/client.key


5.2使用rancher查看集群

rancher官网:Enterprise Kubernetes Management | Rancher

安装rancher

创建映射目录

mkdir -p /docker_volume/rancher_home/rancher
mkdir -p /docker_volume/rancher_home/auditlog

运行

docker run -d --restart=unless-stopped --privileged -p 80:80 -p 443:443 \\
-v /docker_volume/rancher_home/rancher:/var/lib/rancher \\
-v /docker_volume/rancher_home/auditlog:/var/log/auditlog \\
--name rancher rancher/rancher

开放防火墙端口

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload

访问

https://ip/

6.部署第一个应用程序nginx

6.1创建Deployment

创建文件 nginx-deployment.yaml,内容如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9

应用 YAML 文件

kubectl apply -f nginx-deployment.yaml

查看部署结果

# 查看 Deployment
kubectl get deployments
# 查看 Pod
kubectl get pods

进入pod命令行

#进入pod命令行界面
kubectl exec -it nginx-deployment-7fb7fd49b4-cs4lb -- /bin/sh
kubectl exec -it nginx-deployment-7fb7fd49b4-cs4lb -- /bin/bash

执行测试命令

将上面的image镜像换成mage: nginx:alpine

可以进命令行执行curl命令看容器是否正常

curl localhost

如果容器内没有curl命令但有http服务,可以通过kubectl proxy间接测试访问

#启用kubectl proxy,默认端口8001
kubectl proxy  & 
#查看pods
kubectl get pods
#curl测试访问
curl http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME:80/proxy/

6.2 创建NodePort类型的service

创建nginx-service.yaml内容如下

apiVersion: v1
kind: Service
metadata:
  namespace: default  
  name: nginx-service
  labels: 
   app: nginx
spec:
  type: NodePort
  ports:
  - protocol: TCP
    port: 9000
    targetPort: 80
    nodePort: 30080
  selector:
    app: nginx

几个端口含义
targetPort:指的deployment里的端口
port:指的service里的端口
nodePort:指的external IP的端口,大部分k8s里用localhost+nodeport就可以本机访问,minikube不行需要用minikube ip

# 查看 service
kubectl get service
# 查看服务详情
kubectl get service nginx-service -o wide

6.3 本机测试访问

本机测试访问,执行命令

curl localhost:30080

如果k8s是minikube搭建的localhost需要替换成minikube ip

先执行minikube ip获取ip

minikube ip

然后

curl <minikube ip>:30080

或者通过一下命令获取url

minikube service nginx-service --url

然后执行curl命令

curl <minikube service url>

6.4 局域网访问

使用kubectl 的端口转发
这里使用--address指定本机ip,根据需要,--address后面的ip改成你自己的ip

kubectl port-forward svc/nginx-service 30080:9000  --address localhost,192.168.3.55   &

可能还需要添加防火墙端口

firewall-cmd --permanent --add-port=30080/tcp
firewall-cmd --reload

之后可以局域网其他电脑访问了,地址如下

http://192.168.3.55:30080/

结果如图

以上是关于centos7安装minikube阿里云版的主要内容,如果未能解决你的问题,请参考以下文章

centos7.5安装minikube kubernetes

centos7安装minikube

安装阿里云github提供的修改版minikube

CentOS 7安装minikube

Docker 与 K8S学习笔记(十四)—— Minikube的安装

2020-06-09【阿里云ECS搭建minikube和Istio1.6】(2)