博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
k8s单机版[ microk8s ]
阅读量:2111 次
发布时间:2019-04-29

本文共 10850 字,大约阅读时间需要 36 分钟。

k8s 的网页管理界面:dashboard

在这里插入图片描述

1, ubuntu16 安装microk8s

microk8s 是单机版的k8s集群,安装过程仅需2、3分钟,适合测试使用

wang@wang-GA-MA770T-UD3P:~/Downloads$  sudo snap install microk8s --classic[sudo] password for wang: microk8s v1.13.0 from 'canonical' installedwang@wang-GA-MA770T-UD3P:/home/wang# ls /snap/bin/etcd.etcdctl  microk8s.enable    microk8s.status  microk8s.inspect   microk8s.stopmicrok8s.istioctl microk8s.config   microk8s.kubectl  microk8s.ctr      microk8s.resetetcdctl  microk8s.disable  microk8s.start#配置环境变量root@stack:/home/wang#  echo 'export PATH=$PATH:/snap/bin'>>~/.bashrc && source ~/.bashrc# 如果之前安装了k8s, 需要覆盖之前的安装的 k8s 服务才能使用microk8s命令wang@wang-GA-MA770T-UD3P: /snap/bin/$ ./microk8s.kubectl config view --raw > $HOME/.kube/config# apiVersion: v1# clusters:# - cluster:#     certificate-authority-data: Ek0TVRJeE9UQTBNelkwTjF#   name: kubernetes# - cluster:#     certificate-authority: /root/.minikube/ca.crt#     server: https://192.168.99.100:8443#   name: minikube# contexts:# - context:#     cluster: kubernetes#     user: kubernetes-admin#   name: kubernetes-admin@kubernetes# - context:#     cluster: minikube#     user: minikube#   name: minikube# current-context: minikube# kind: Config# preferences: {}# users:# - name: kubernetes-admin#   user:#     client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tL#     client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS# - name: minikube#   user:#     client-certificate: /root/.minikube/client.crt#     client-key: /root/.minikube/client.key###################################### apiVersion: v1# clusters:# - cluster:#     server: http://127.0.0.1:8080#   name: microk8s-cluster# contexts:# - context:#     cluster: microk8s-cluster#     user: admin#   name: microk8s# current-context: microk8s# kind: Config# preferences: {}# users:# - name: admin#   user:#     username: admin#

a, 查看集群信息

#查看基本信息wang@wang-GA-MA770T-UD3P:~/Downloads$ snap info microk8sname:      microk8ssummary:   Kubernetes for workstations and appliancespublisher: Canonical✓contact:   https://github.com/ubuntu/microk8slicense:   unsetdescription: |  MicroK8s is a small, fast, secure, single node Kubernetes that installs on just about any Linux  box. Use it for offline development, prototyping, testing, or use it on a VM as a small, cheap,  reliable k8s for CI/CD. It's also a great k8s for appliances - develop your IoT apps for k8s and  deploy them to MicroK8s on your boxes.commands:  - microk8s.config  - microk8s.disable  - microk8s.docker  - microk8s.enable  - microk8s.inspect  - microk8s.istioctl  - microk8s.kubectl  - microk8s.reset  - microk8s.start  - microk8s.status  - microk8s.stopservices:  microk8s.daemon-apiserver:          simple, enabled, active  microk8s.daemon-apiserver-kicker:   simple, enabled, active  microk8s.daemon-controller-manager: simple, enabled, active  microk8s.daemon-docker:             simple, enabled, active  microk8s.daemon-etcd:               simple, enabled, active  microk8s.daemon-kubelet:            simple, enabled, active  microk8s.daemon-proxy:              simple, enabled, active  microk8s.daemon-scheduler:          simple, enabled, active  #插件状态wang@wang-GA-MA770T-UD3P:~/Downloads$ microk8s.statusmicrok8s is runningaddons:ingress: disableddns: disabledmetrics-server: disabledistio: disabledgpu: disabledstorage: disableddashboard: disabledregistry: disabled#节点状态wang@wang-GA-MA770T-UD3P:~/Downloads$ microk8s.kubectl get nodesNAME                  STATUS   ROLES    AGE     VERSIONwang-ga-ma770t-ud3p   Ready    
8m47s v1.13.0#服务状态wang@wang-GA-MA770T-UD3P:~/Downloads$ microk8s.kubectl get servicesNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEkubernetes ClusterIP 10.152.183.1
443/TCP 8m58s

b,通过webui 管理k8s集群:登录dashboard

wang@wang-GA-MA770T-UD3P:~/Downloads$ microk8s.enable dnsEnabling DNSApplying manifestservice/kube-dns createdserviceaccount/kube-dns createdconfigmap/kube-dns createddeployment.extensions/kube-dns createdRestarting kubelet[sudo] password for wang: DNS is enabled# 开启dashboard服务# create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yamlwang@wang-GA-MA770T-UD3P:~/Downloads$ microk8s.enable dashboardEnabling dashboardsecret/kubernetes-dashboard-certs createdserviceaccount/kubernetes-dashboard createddeployment.apps/kubernetes-dashboard createdservice/kubernetes-dashboard createdservice/monitoring-grafana createdservice/monitoring-influxdb createdservice/heapster createddeployment.extensions/monitoring-influxdb-grafana-v4 createdserviceaccount/heapster createdconfigmap/heapster-config createdconfigmap/eventer-config createddeployment.extensions/heapster-v1.5.2 createddashboard enabled# 创建用户,获取登录密钥#创建登录用的账户cat  > dashboard-adminuser.yaml <
dashboard-adminuser-roleBind.yaml <
## Annotations: kubernetes.io/service-account.name: admin-user## kubernetes.io/service-account.uid: b1cb7e10-06bb-11e9-a37b-1c6f65287c2d## ## Type: kubernetes.io/service-account-token## ## Data## ====## ca.crt: 1094 bytes## namespace: 11 bytes## token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZ........#开启api 代理服务, 监听8001端口, web访问会使用到此端口wang@wang-GA-MA770T-UD3P:~/Downloads$ microk8s.kubectl proxyStarting to serve on 127.0.0.1:8001

c, 访问dashboard页面报错503

http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

{ "kind": "Status", "apiVersion": "v1",  "metadata": {},  "status": "Failure",  "message": "no endpoints available for service \"kubernetes-dashboard\"", "reason": "ServiceUnavailable",  "code": 503  } #=====原因 wang@wang-GA-MA770T-UD3P:~/Downloads$ microk8s.kubectl get pods --namespace kube-system NAME                                              READY   STATUS              RESTARTS   AGEheapster-v1.5.2-6bc7c4965d-9qbsb                  0/4     ContainerCreating   0          32mkube-dns-6ccd496668-5wdsl                         0/3     ContainerCreating   0          33mkubernetes-dashboard-654cfb4879-rtrw6             0/1     ContainerCreating   0          32mmonitoring-influxdb-grafana-v4-6679c46745-hplwv   0/2     ContainerCreating   0          32m#======解决wang@wang-GA-MA770T-UD3P:~/Downloads$ sudo docker pull lhcalibur/pause-amd64[sudo] password for wang: Using default tag: latestlatest: Pulling from lhcalibur/pause-amd64a3ed95caeb02: Pull complete f11233434377: Pull complete Digest: sha256:40cd7088fd930f1e8939aaa5d5b8bdf6b214bda7eb22070cf20f5094b6863191Status: Downloaded newer image for lhcalibur/pause-amd64:latestwang@wang-GA-MA770T-UD3P:~/Downloads$ sudo docker tag lhcalibur/pause-amd64:latest gcr.io/google_containers/pause-amd64:3.0wang@wang-GA-MA770T-UD3P:~/Downloads$ microk8s.kubectl get pods --namespace kube-systemNAME                                              READY   STATUS    RESTARTS   AGEheapster-v1.5.2-64874f6bc6-pbt5k                  4/4     Running   0          25mkube-dns-6ccd496668-5wdsl                         3/3     Running   1          78mkubernetes-dashboard-654cfb4879-rtrw6             1/1     Running   0          78mmonitoring-influxdb-grafana-v4-6679c46745-hplwv   2/2     Running   0          78m###异常的情况如下: Warning  FailedCreatePodSandBox  101s                   kubelet, stack     Failed create pod sandbox: rpc error: code = Unknown desc = failed to get sandbox image "k8s.gcr.io/pause:3.1":  failed to pull image "k8s.gcr.io/pause:3.1": failed to resolve image "k8s.gcr.io/pause:3.1": no available registry endpoint: failed to do request: Head https://k8s.gcr.io/v2/pause/manifests/3.1: dial tcp 74.125.204.82:443: i/o timeout

再次访问: http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

在这里插入图片描述
登录后即可进入管理界面

d, 部署nginx服务报错:Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout

nginx-deployment.yaml

apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2kind: Deploymentmetadata:  name: nginx-deploymentspec:  selector:    matchLabels:      app: nginx  replicas: 1 # tells deployment to run 2 pods matching the template  template:    metadata:      labels:        app: nginx    spec:      containers:      - name: nginx        image: nginx:1.7.9        ports:        - containerPort: 80

创建deployment后,pod状态异常

wang@wang-GA-MA770T-UD3P:~/Downloads$ microk8s.kubectl get podsNAME                                READY   STATUS             RESTARTS   AGEnginx-deployment-76bf4969df-sr8m4   0/1     ImagePullBackOff   0          49mwang@wang-GA-MA770T-UD3P:~/Downloads$ microk8s.kubectl describe pod nginx-deployment-76bf4969df-sr8m4 Name:               nginx-deployment-76bf4969df-sr8m4Namespace:          defaultPriority:           0PriorityClassName:  
Node: wang-ga-ma770t-ud3p/192.168.1.12Start Time: Sun, 23 Dec 2018 23:12:37 +0800Labels: app=nginx pod-template-hash=76bf4969dfAnnotations:
Status: PendingIP: 10.1.1.25Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 49m default-scheduler Successfully assigned default/nginx-deployment-76bf4969df-sr8m4 to wang-ga-ma770t-ud3p Normal Pulling 46m (x2 over 49m) kubelet, wang-ga-ma770t-ud3p pulling image "nginx:1.7.9" Warning Failed 45m (x2 over 46m) kubelet, wang-ga-ma770t-ud3p Error: ErrImagePull Warning Failed 45m kubelet, wang-ga-ma770t-ud3p Failed to pull image "nginx:1.7.9": rpc error: code = Unknown desc = Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) Normal SandboxChanged 45m (x7 over 46m) kubelet, wang-ga-ma770t-ud3p Pod sandbox changed, it will be killed and re-created. Normal BackOff 45m (x6 over 46m) kubelet, wang-ga-ma770t-ud3p Back-off pulling image "nginx:1.7.9"

2, centos 7 安装microk8s

# 安装 snapyum -y install epel-releaseyum -y install yum-plugin-copryum -y copr enable ngompa/snapcore-el7yum -y install snapdsystemctl enable --now snapd.socketln -s /var/lib/snapd/snap /snap# snap 安装 microk8ssnap install microk8s --classicsnap info microk8s#配置 microk8s环境变量[root@node2 ~]# ls /var/lib/snapd/snap/binmicrok8s.config   microk8s.enable    microk8s.kubectl  microk8s.statusmicrok8s.ctr      microk8s.inspect   microk8s.reset    microk8s.stopmicrok8s.disable  microk8s.istioctl  microk8s.start[root@node2 ~]# echo 'export PATH=$PATH:/var/lib/snapd/snap/bin'>>/etc/profile ; source /etc/profile# 创建别名: snap alias microk8s.kubectl kubectl

转载地址:http://jtdef.baihongyu.com/

你可能感兴趣的文章
设计模式总结
查看>>
什么时候可以使用Ehcache缓存
查看>>
Java核心知识点-JVM结构和工作方式
查看>>
Java编程中“为了性能”一些尽量做到的地方
查看>>
Java并发编程:线程池的使用
查看>>
redis单机及其集群的搭建
查看>>
Java多线程学习
查看>>
检查Linux服务器性能
查看>>
Java 8新的时间日期库
查看>>
Chrome开发者工具
查看>>
Java工程师成神之路
查看>>
如何在 Linux 上自动设置 JAVA_HOME 环境变量
查看>>
MSSQL复习笔记
查看>>
Spring基础知识汇总
查看>>
Chrome扩展插件
查看>>
log4j.xml 日志文件配置
查看>>
如何删除MySql服务
查看>>
BAT Java和Rti环境变量设置
查看>>
NodeJs npm install 国内镜像
查看>>
python3.5.2 mysql Exccel
查看>>