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界面,所以图形界面是必须安装的,并且只能本地查看
官网
下载安装
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
之后可以局域网其他电脑访问了,地址如下
结果如图
以上是关于centos7安装minikube阿里云版的主要内容,如果未能解决你的问题,请参考以下文章
centos7.5安装minikube kubernetes