当前位置: 首页 > news >正文

(十七)、Mac 安装k8s

文章目录

    • 1、Enable Kubernetes
    • 2、查看k8s运行状态
    • 3、启用 kubernetes-dashboard
      • 3.1、如果启动成功,可以在浏览器访问
      • 3.2、如果没有跳转,需要单独安装 kubernetes-dashboard
        • 3.2.1、方式一:一步到位
        • 3.2.2、方式二:逐步进行

1、Enable Kubernetes

Mac 安装了 Docker 和 Docker Desktop
然后在 settings 勾选 Enable Kubernetes
在这里插入图片描述

然后可以看到下面,说明安装成功
在这里插入图片描述

2、查看k8s运行状态

kubectl cluster-info# 打印信息
Kubernetes control plane is running at https://127.0.0.1:6443
CoreDNS is running at https://127.0.0.1:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

3、启用 kubernetes-dashboard

用于直观查看 k8s 的运行状态

kubectl proxy

3.1、如果启动成功,可以在浏览器访问

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

在这里插入图片描述

3.2、如果没有跳转,需要单独安装 kubernetes-dashboard

先确认状态,正常的话会有两个运行状态

➜  ~ kubectl get pods -n kubernetes-dashboardNAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-748b4f5b9d-gn5x8   1/1     Running   0          3h51m
kubernetes-dashboard-86b687bd84-9m5lv        1/1     Running   0          3h51m
3.2.1、方式一:一步到位

网络不好会遇到域名无法解析问题

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml
3.2.2、方式二:逐步进行

先把 https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml 内容保存到本地,比如存储为文件 aaa.txt

# Copyright 2017 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.apiVersion: v1
kind: Namespace
metadata:name: kubernetes-dashboard---apiVersion: v1
kind: ServiceAccount
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard---kind: Service
apiVersion: v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
spec:ports:- port: 443targetPort: 8443selector:k8s-app: kubernetes-dashboard---apiVersion: v1
kind: Secret
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-certsnamespace: kubernetes-dashboard
type: Opaque---apiVersion: v1
kind: Secret
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-csrfnamespace: kubernetes-dashboard
type: Opaque
data:csrf: ""---apiVersion: v1
kind: Secret
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-key-holdernamespace: kubernetes-dashboard
type: Opaque---kind: ConfigMap
apiVersion: v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-settingsnamespace: kubernetes-dashboard---kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
rules:# Allow Dashboard to get, update and delete Dashboard exclusive secrets.- apiGroups: [""]resources: ["secrets"]resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs", "kubernetes-dashboard-csrf"]verbs: ["get", "update", "delete"]# Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map.- apiGroups: [""]resources: ["configmaps"]resourceNames: ["kubernetes-dashboard-settings"]verbs: ["get", "update"]# Allow Dashboard to get metrics.- apiGroups: [""]resources: ["services"]resourceNames: ["heapster", "dashboard-metrics-scraper"]verbs: ["proxy"]- apiGroups: [""]resources: ["services/proxy"]resourceNames: ["heapster", "http:heapster:", "https:heapster:", "dashboard-metrics-scraper", "http:dashboard-metrics-scraper"]verbs: ["get"]---kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard
rules:# Allow Metrics Scraper to get metrics from the Metrics server- apiGroups: ["metrics.k8s.io"]resources: ["pods", "nodes"]verbs: ["get", "list", "watch"]---apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: kubernetes-dashboard
subjects:- kind: ServiceAccountname: kubernetes-dashboardnamespace: kubernetes-dashboard---apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: kubernetes-dashboard
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: kubernetes-dashboard
subjects:- kind: ServiceAccountname: kubernetes-dashboardnamespace: kubernetes-dashboard---kind: Deployment
apiVersion: apps/v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
spec:replicas: 1revisionHistoryLimit: 10selector:matchLabels:k8s-app: kubernetes-dashboardtemplate:metadata:labels:k8s-app: kubernetes-dashboardspec:securityContext:seccompProfile:type: RuntimeDefaultcontainers:- name: kubernetes-dashboardimage: kubernetesui/dashboard:v2.5.1imagePullPolicy: Alwaysports:- containerPort: 8443protocol: TCPargs:- --auto-generate-certificates- --namespace=kubernetes-dashboard# Uncomment the following line to manually specify Kubernetes API server Host# If not specified, Dashboard will attempt to auto discover the API server and connect# to it. Uncomment only if the default does not work.# - --apiserver-host=http://my-address:portvolumeMounts:- name: kubernetes-dashboard-certsmountPath: /certs# Create on-disk volume to store exec logs- mountPath: /tmpname: tmp-volumelivenessProbe:httpGet:scheme: HTTPSpath: /port: 8443initialDelaySeconds: 30timeoutSeconds: 30securityContext:allowPrivilegeEscalation: falsereadOnlyRootFilesystem: truerunAsUser: 1001runAsGroup: 2001volumes:- name: kubernetes-dashboard-certssecret:secretName: kubernetes-dashboard-certs- name: tmp-volumeemptyDir: {}serviceAccountName: kubernetes-dashboardnodeSelector:"kubernetes.io/os": linux# Comment the following tolerations if Dashboard must not be deployed on mastertolerations:- key: node-role.kubernetes.io/mastereffect: NoSchedule---kind: Service
apiVersion: v1
metadata:labels:k8s-app: dashboard-metrics-scrapername: dashboard-metrics-scrapernamespace: kubernetes-dashboard
spec:ports:- port: 8000targetPort: 8000selector:k8s-app: dashboard-metrics-scraper---kind: Deployment
apiVersion: apps/v1
metadata:labels:k8s-app: dashboard-metrics-scrapername: dashboard-metrics-scrapernamespace: kubernetes-dashboard
spec:replicas: 1revisionHistoryLimit: 10selector:matchLabels:k8s-app: dashboard-metrics-scrapertemplate:metadata:labels:k8s-app: dashboard-metrics-scraperspec:securityContext:seccompProfile:type: RuntimeDefaultcontainers:- name: dashboard-metrics-scraperimage: kubernetesui/metrics-scraper:v1.0.7ports:- containerPort: 8000protocol: TCPlivenessProbe:httpGet:scheme: HTTPpath: /port: 8000initialDelaySeconds: 30timeoutSeconds: 30volumeMounts:- mountPath: /tmpname: tmp-volumesecurityContext:allowPrivilegeEscalation: falsereadOnlyRootFilesystem: truerunAsUser: 1001runAsGroup: 2001serviceAccountName: kubernetes-dashboardnodeSelector:"kubernetes.io/os": linux# Comment the following tolerations if Dashboard must not be deployed on mastertolerations:- key: node-role.kubernetes.io/mastereffect: NoSchedulevolumes:- name: tmp-volumeemptyDir: {}

然后 手动运行

kubectl apply -f aaa.txt#预期会打印
namespace/kubernetes-dashboard created
serviceaccount/kubernetes-dashboard created
service/kubernetes-dashboard created
secret/kubernetes-dashboard-certs created
secret/kubernetes-dashboard-csrf created
secret/kubernetes-dashboard-key-holder created
configmap/kubernetes-dashboard-settings created
role.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/dashboard-metrics-scraper created
deployment.apps/dashboard-metrics-scraper created

此时可能会

➜  ~ kubectl get pods -n kubernetes-dashboard
NAME                                         READY   STATUS             RESTARTS   AGE
dashboard-metrics-scraper-748b4f5b9d-gn5x8   1/1     Running            0          7m45s
kubernetes-dashboard-86b687bd84-9m5lv        0/1     ImagePullBackOff   0  

然后手动下载

docker pull kubernetesui/dashboard:v2.5.1
此时正常
➜  ~ kubectl get pods -n kubernetes-dashboard
NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-748b4f5b9d-gn5x8   1/1     Running   0          15m
kubernetes-dashboard-86b687bd84-9m5lv        1/1     Running   0          15m

最后再次访问
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/ 出现页面即可

相关文章:

  • Miniforge详细安装教程(macOs和Windows)
  • mongoDB快速上手
  • vue按钮接收键盘回车事件
  • 云栖3天,云原生+ AI 多场联动,新产品、新体验、新探索
  • 卸载apt-get 安装的PostgreSQL版本
  • HTML5+JavaScript绘制闪烁的网格错觉
  • 基于php的酒店管理系
  • 【Python】数据可视化之点线图
  • 后端人需知
  • Spring Boot 进阶- Spring Boot 自定义拦截器详解
  • Go版数据结构 -【4.2 二叉搜索树】
  • 从零开始Ubuntu24.04上Docker构建自动化部署(五)Docker安装jenkins
  • Linux系统性能调优技巧:提升效率与响应速度的秘诀
  • uni-app在线预览pdf
  • LeetCode 704. 二分查找
  • 【译】JS基础算法脚本:字符串结尾
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • Akka系列(七):Actor持久化之Akka persistence
  • Flannel解读
  • java多线程
  • Java新版本的开发已正式进入轨道,版本号18.3
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • ng6--错误信息小结(持续更新)
  • SOFAMosn配置模型
  • spring boot 整合mybatis 无法输出sql的问题
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • Vue 重置组件到初始状态
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 技术发展面试
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 使用 QuickBI 搭建酷炫可视化分析
  • 数据科学 第 3 章 11 字符串处理
  • 通过npm或yarn自动生成vue组件
  • 我的zsh配置, 2019最新方案
  • 主流的CSS水平和垂直居中技术大全
  • 函数计算新功能-----支持C#函数
  • ​什么是bug?bug的源头在哪里?
  • ​水经微图Web1.5.0版即将上线
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #1015 : KMP算法
  • (7)STL算法之交换赋值
  • (c语言+数据结构链表)项目:贪吃蛇
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (二)linux使用docker容器运行mysql
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (九十四)函数和二维数组
  • (六)vue-router+UI组件库
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (转)visual stdio 书签功能介绍
  • (转)编辑寄语:因为爱心,所以美丽
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • *1 计算机基础和操作系统基础及几大协议
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes