linux部署k8s教程
一.安装k8s
1.关闭防火墙
systemctl stop firewalld
2.关闭swap
swapoff -a
3.更改hosts
vim /etc/hosts
10.101.116.3 k8s-master
10.101.116.4 k9s-node1
4.安装docker
yum -y
install
docker-ce-18.06.1.ce-3.el7
5.配置k8s来源
cat
>
/etc/yum
.repos.d
/kubernetes
.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https:
//mirrors
.aliyun.com
/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
EOF
6.
kubeadm,kubelet和kubectl
yum install -y kubelet-1.13.3 kubectl-1.13.3 kubeadm-1.13.3 kubernetes-cni-1.13.3 --skip-broken
7.初始化master
kubeadm init \
--apiserver-advertise-address=10.101.116.3 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.14.1 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
执行命令:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
安装pod网络插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
部署成功:
二.安装dashboard
1.
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml
2.修改yml
# 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:type: NodePortports:- port: 443targetPort: 8443nodePort: 30001selector: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:containers:- name: kubernetes-dashboardimage: kubernetesui/dashboard:v2.4.0imagePullPolicy: 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:containers:- 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: {}
3.执行命令
kubectl apply -f recommended.yaml
确认结果:
kubectl get pods --all-namespaces
4.创建集群用户:
kubectl create clusterrolebinding serviceaccount-cluster-admin --clusterrole=cluster-admin --user=system:serviceaccount:kubernetes-dashboard:kubernetes-dashboard
5.获取登入token:
kubectl describe secrets -n kubernetes-dashboard
结果:
三.node配置
1.先重复执行1-7,然后执行命令:
kubeadm join 10.101.116.3:6443 --token z9p6tq.ok77ujvqoux1ir23 --discovery-token-ca-cert-hash sha256:a43ec09da697828cb4cf67429b0cb294cc80cb0dec9dca75113820976a5e53e7
linux部署k8s教程相关推荐
- Linux 安装k8s 教程
转自 搭建k8s https://www.cnblogs.com/spll/p/10033316.html 使用 k8s 搭建tomcat https://www.cnblogs.com/spll ...
- 【dubbo-2.5.x】Linux下dubbo-admin监控/管理平台部署详细教程
前言 Dubbo-Admin是Dubbo控制台管理的工具,是Dubbo组件之一,需要Dubbo-Admin管理平台来实时对服务调用情况进行调整,比如控制分布式服务的调用权重等,通过调整调整调用权重来控 ...
- linux上部署K8S集群
部署K8S集群 服务器硬件要求:三台虚拟机服务器,操作系统都为centos: 硬盘最低配置:内存2GB,CPU2核,硬盘30GB. 准备环境 master 192.168.200.110 node ...
- Linux环境下安装及部署Nginx教程
一.安装教程 1.官网下载地址:nginx: download 2.下载教程: 1)选择Stable version版本下载到本地(该版本为Linux版本),下载完成后直接在本地解压后放入linux系 ...
- Linux部署python接口自动化教程,基于centos7 python3
Linux部署python接口自动化教程 1.安装jenkins 2.安装插件和依赖 **安装allure插件(测试报告)** **配置allure依赖** 安装python3.x依赖环境 **安装p ...
- 如何部署linux服务器,CRAP-API——如何在Linux服务器部署CRAP-API教程
标签:trade 使用 format ade cer art files 朋友 linux 前言 之前一直用的eolinker的免费版,但是人数有限,所以想找个免费开源 ...
- Linux环境下部署redis教程详解
部署redis 一. 服务器资源 服务名称:Linux服务器 IP:[请查看资源分配文档] 操作系统:CentOS 6.9 x64 二.下载redis 压缩包 下载地址:redis.io 这里下载的r ...
- centos7.8 安装部署 k8s 集群
centos7.8 安装部署 k8s 集群 文章目录 centos7.8 安装部署 k8s 集群 环境说明 Docker 安装 k8s 安装准备工作 Master 节点安装 k8s 版本查看 安装 k ...
- 使用Kubespray部署k8s生产集群
夫君子之行,静以修身,俭以养德,非淡泊无以明志,非宁静无以致远. 夫学须静也,才须学也,非学无以广才,非志无以成学.淫慢则不能励精,险躁则不能冶性. 年与时驰,意与日去,遂成枯落,多不接世,悲守穷庐, ...
- 【B站、西瓜抖音视频课件】Docker K8S教程
title: Docker&K8S教程 date: 2023-03-13 18:33:19 tags: [K8S,Docker] categories: [K8S] 网络策略 1.3开始提供 ...
最新文章
- 什么限制了GNN的能力?首篇探究GNN普适性与局限性的论文出炉!
- bpython使用_使用Python实现一个简单的A/B测试
- 奇安信cdn配置教程_PicGo+jsDelivr+GitHub搭建免费cdn加速的图床
- [译]C#中的条件断点
- css清除浮动的几种方法_CSS 分享几种传统布局方法[上]
- WIFI信道频率对应
- DCDC开关电源的阶跃响应和动态响应(Load Transient)的区别
- 精读解析 Entire Space Multi-Task Model(ESMM) 阿里2018年CVR预测
- 怎么使用JavaScript进行进制…
- 基于MATLAB视频的人体姿态检测
- VC使用: vs2003的工程升级到vs2010的问题汇总
- poi excel下载
- 数学运算 - 心算加减法
- Python编程课程好学吗?能学会吗?
- js中对特殊字符进行转义
- 蓝色默认蓝色色值_美丽的蓝色网站展示
- 巧用 即刻搜索事件 input propertychange 监听输入框字数
- 洛谷P3817 小A的糖果
- 黑马—private关键字-封装
- Mac mini M1 2K显示器
热门文章
- SQL Server 2008 R2
- Trace View
- cmd 、java获取硬盘的序列号(serialnumber)物理地址 和磁盘ID逻辑地址
- java beanutil 工具类_Apache Commons BeanUtils PropertyUtils工具类操作Java Bean属性
- 交互设计之层次设计配色篇(表达逻辑——前进色与后退色)
- 【2022】APP-IOS客户端Android客户端安全性测试-常见问题
- cisco2811(Cisco2811 DHCP)
- boost升压电路工作原理
- Onvif协议快速入门
- 这些单晶XRD测试问题你了解吗?(一)