kubernetes安装(minikube)

文|MESeraph

01 | 关闭secure boot

进入BIOS关闭secure boot。(为了VM能正常启动)

02 | 安装

安装kubectl

curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/v1.8.0/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/

安装virtualbox(minikube 默认依赖虚拟机启动,如果不安装虚拟机则启动minikube时需要添加 --vm-driver=none参数)

sudo apt install virtualbox

安装minikube

curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.23.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

03 | 启动

启动minikube

sudo minikube start
#或
sudo minikube start --vm-driver=none

04 | 为kubectl别名和命令行补全

1 创建别名
在 ~/.bashrc添加

alias k=kubectl

再执行 source ~/.bashrc
2 配置tab补全(需要安装bashcompletion)

source <(kubectl completion bash )
source <(kubectl completion bash | sed s/kubectl/k/g)

04 | 运行应用

启动 nginx容器
sudo kubectl run kube-nginx999 --image=nginx:latest --port=80
#默认是创建deployment,添加参数--generator=run/v1则创建ReplicationController。

一开始可能会一直处于containerCreating,很多情况下是pull镜像失败导致(由于被墙)。
sudo minikube logs查询日志详情,按问题3的解决方式,pull镜像。

发布服务
sudo kubectl expose deployment kube-nginx999 --type=NodePort --name kube-http
# 如果是ReplicationController,则将deployment改为rc

这里使用的NodePort模式,还有一种LoadBalancer模型(但Minikube不支持)
使用sudo minikube service kube-http --url获取访问服务的ip和端口。

增加期望的副本数量
sudo kubectl scale rc kubia --replicas=3

05 | 常用命令

kubectl

命令 解释
kubectl cluster-info 查询集群信息
kubectl get nodes 查询集群节点
kubectl describe node 节点名 查询指定节点详细信息
kubectl get pods 获取pod信息
kubectl delete pod 名称 删除pod
kubectl get pods -0 wide 获取pod信息(包含具体运行节点信息)
kubectl delete deployment 名称 删除deployment
kubectl get services/svc 列出服务

minikube

命令 解释
sudo minikube logs 查看日志信息
sudo minikube stop 停止minikube
sudo minikube start [–vm-driver=none] 启动minikube
sudo minikube service 服务名 --url 查询服务ip和端口
sudo minikube ssh 登入虚拟机

99 | 问题

  1. 出现如下错误提示:
Starting local Kubernetes v1.8.0 cluster...
Starting VM...
Getting VM IP address...
Moving files into cluster...
E1211 14:06:27.325706    4907 start.go:222] Error updating cluster:  Error updating localkube from uri: Error attempting to download and cache localkube: Error getting localkube download url: Error getting valid localkube versions: Error getting the localkube versions: Error getting json via http with url: https://storage.googleapis.com/minikube/k8s_releases.json: Error getting json from url: https://storage.googleapis.com/minikube/k8s_releases.json via http: Get https://storage.googleapis.com/minikube/k8s_releases.json: read tcp 192.168.1.134:51656->172.217.24.16:443: read: connection reset by peer
E1211 14:06:57.329610    4907 util.go:147] Error uploading error message: : Post https://clouderrorreporting.googleapis.com/v1beta1/projects/k8s-minikube/events:report?key=AIzaSyACUwzG0dEPcl-eOgpDKnyKoUFgHdfoFuA: dial tcp 172.217.160.74:443: i/o timeout

解决:重试几次就可以了。。。

  1. sudo minikube start 出现:
Starting local Kubernetes v1.8.0 cluster...
Starting VM...
E1211 15:56:31.318078   10120 start.go:150] Error starting host: Error getting state for host: machine does not exist.

 Retrying.
E1211 15:56:31.319951   10120 start.go:156] Error starting host:  Error getting state for host: machine does not exist
E1211 15:57:01.320826   10120 util.go:147] Error uploading error message: : Post https://clouderrorreporting.googleapis.com/v1beta1/projects/k8s-minikube/events:report?key=AIzaSyACUwzG0dEPcl-eOgpDKnyKoUFgHdfoFuA: dial tcp 172.217.24.10:443: i/o timeout

解决:执行rm -rf ~/.minikube/machines,然后重启minikube。

  1. 启动镜像时,使用sudo minikube logs显示如下:
Jan 05 03:52:58 minikube localkube[3624]: E0105 03:52:58.952990    3624 kuberuntime_manager.go:632] createPodSandbox for pod "nginx666-864b85987c-kvdpb_default(b0cc687d-f1cb-11e7-ba05-080027e170dd)" failed: rpc error: code = Unknown desc = failed pulling image "gcr.io/google_containers/pause-amd64:3.0": Error response from daemon: Get https://gcr.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

解决:执行如下命令,再重启服务。

minikube ssh
docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0
docker tag registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0 gcr.io/google_containers/pause-amd64:3.0
docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/kubernetes-dashboard-amd64:v1.7.0
docker tag registry.cn-hangzhou.aliyuncs.com/google-containers/kubernetes-dashboard-amd64:v1.7.0 gcr.io/google_containers/kubernetes-dashboard-amd64:v1.7.0

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-addon-manager:v6.4-beta.2
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-addon-manager:v6.4-beta.2 gcr.io/google-containers/kube-addon-manager:v6.4-beta.2

docker pull registry.cn-shenzhen.aliyuncs.com/gcrio/k8s-dns-kube-dns-amd64:latest
docker tag registry.cn-shenzhen.aliyuncs.com/gcrio/k8s-dns-kube-dns-amd64:latest gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.5

docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/k8s-dns-dnsmasq-nanny-amd64:1.14.5
docker tag registry.cn-hangzhou.aliyuncs.com/google-containers/k8s-dns-dnsmasq-nanny-amd64:1.14.5 gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.5

docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/k8s-dns-sidecar-amd64:1.14.5
docker tag registry.cn-hangzhou.aliyuncs.com/google-containers/k8s-dns-sidecar-amd64:1.14.5 gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.5

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v1.8.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v1.8.1 gcr.io/k8s-minikube/storage-provisioner:v1.8.1
exit

猜你喜欢

转载自blog.csdn.net/pengshuyes/article/details/111033156