k8s 1.20部署(纯新手,搭建一套带Dashboard的K8S集群,只看这一篇就够了)

K8S

kubernetes(K8S)是什么

Kubernetes(常简称为K8S)是用于自动部署、扩展和管理容器化(containerized)应用程序的开源系统。系统由Google设计并捐赠给Cloud Native Computing Foundation(今属Linux基金会)来使用。

它旨在提供“跨主机集群的自动部署、扩展以及运行应用程序容器的平台”。它支持一系列容器工具, 包括Docker等。我们可以将Docker看成Kubernetes内部使用的低级别组件。

为什么要使用kubernetes

Docker这个新兴的容器化技术当前应用越来越广,并且其从单机走向集群也称为必然,而云计算的蓬勃发【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.展正在加速这一进程。kubernetes作为当前普遍被业界广泛认可和看好的docker分布式系统解决方案,前景非常可观。

使用Kubernetes可以做什么:

自动化容器的部署和复制随时扩展或收缩容器规模将容器组织成组,并且提供容器间的负载均衡很容易地升级应用程序容器的新版本提供容器弹性,如果容器失效就替换它

部署环境准备

机器信息

机器信息

关闭防火墙及selinux

# systemctl stop firewalld # systemctl disable firewalld # setenforce 0

修改hosts

172.17.0.218 k8sm-218 172.17.0【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业..219 k8s-219 172.17.0.220 k8s-220

增加网络转发

# cat <<EOF > /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF # sysctl –system //使配置生效

安装组件

安装指定版本Docker

# wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/l【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.inux/centos/docker-ce.repo # yum install docker-ce-18.06.1.ce-3.el7 -y # systemctl start docker # systemctl enable docker

安装指定版本kubelet,kubeadm,kubectl

# cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF # yum install kubelet-1.13.3 -y # yum install kubeadm-1.13.3 -y # yu【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.m install kubectl-1.13.3 -y # systemctl enable kubelet

初始化master

# kubeadm init –kubernetes-version=v1.13.3 –apiserver-advertise-address=172.17.0.218 –image-repository registry.aliyuncs.com/google_containers –pod-network-cidr=10.244.0.0/16 –service-cidr=10.96.0.0/12

参数含义:

–kubernetes-version:指【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.定kubeadm版本;

–pod-network-cidr:指定pod所属网络

–image-repository 指定下载源

–service-cidr:指定service网段,负载均衡ip

–ignore-preflight-errors=Swap/all:忽略 swap/所有 报错

初始化成功结果

Your Kubernetes master has initialized successfully! To start using your cluster, you need to run the following as a regular user: mkdir -p【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业. $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config You should now deploy a pod network to the cluster. Run “kubectl apply -f [podnetwork].yaml” with one of the options listed at: https://kubernetes.io/docs/concep【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.ts/cluster-administration/addons/ You can now join any number of machines by running the following on each node as root: kubeadm join 172.17.0.218:6443 –token ai3bxc.zgq33i1sbdybhnci –discovery-token-ca-cert-hash sha256:20cb9ccc07e2612bc3b31bd7b5e8909bdbd3d293e7c7f4c18dbee6f62ea94788【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.

增加kubectl权限访问

此处为初始化成功输出的内容,复制即可

# 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/master/Documentation/kube-flannel.yml

增加node到集群里

// mas【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.ter初始化后的命令 # kubeadm join 172.17.0.218:6443 –token ai3bxc.zgq33i1sbdybhnci –discovery-token-ca-cert-hash sha256:20cb9ccc07e2612bc3b31bd7b5e8909bdbd3d293e7c7f4c18dbee6f62ea94788

master节点查看node状态

# kubectl get node NAME STATUS ROLES AGE VERSION k8s-219 Ready <none> 112m v1.13.3 k8s-220【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业. Ready <none> 113m v1.13.3 k8sm-218 Ready master 162m v1.13.3

部署webui dashboard

下载官方的yaml文件:

# wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

修改两个地方

第一个是修改镜像,kubernetes-dashboard.yaml配置文件112行

90 # ——————- Dashboard Deplo【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.yment ——————- # 91 92 kind: Deployment 93 apiVersion: apps/v1 94 metadata: 95 labels: 96 k8s-app: kubernetes-dashboard 97 name: kubernetes-dashboard 98 namespace: kube-system 99 spec: 100 replicas: 1 101 revisionHistoryLimit: 10 102 selecto【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.r: 103 matchLabels: 104 k8s-app: kubernetes-dashboard 105 template: 106 metadata: 107 labels: 108 k8s-app: kubernetes-dashboard 109 spec: 110 containers: 111 – name: kubernetes-dashboard 112 #image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1 113 image: 【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.0 114 ports: 115 – containerPort: 8443 116 protocol: TCP

第二个是添加一个type,指定端口类型为 NodePort,这样外界可以通过地址 nodeIP:nodePort 访问 dashboard,kubernetes-dashboard.yaml配置文件158行:

148 # ——————- Dashboard Service ——————- # 14【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.9 150 kind: Service 151 apiVersion: v1 152 metadata: 153 labels: 154 k8s-app: kubernetes-dashboard 155 name: kubernetes-dashboard 156 namespace: kube-system 157 spec: 158 type: NodePort 159 ports: 160 – port: 443 161 targetPort: 8443 162 selector: 【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业. 163 k8s-app: kubernetes-dashboard

部署到k8s集群

# kubectl apply -f kubernetes-dashboard.yaml # kubectl get pods -n kube-system |grep dashboard kubernetes-dashboard-6685cb584f-xlk2h 1/1 Running 0 98s # kubectl get pods,svc -n kube-system NAME READY STATUS RESTARTS AGE pod/coredns-78d【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.4cf999f-5hcjm 1/1 Running 0 3h21m pod/coredns-78d4cf999f-6mlql 1/1 Running 0 3h21m pod/etcd-k8sm-218 1/1 Running 0 3h20m pod/kube-apiserver-k8sm-218 1/1 Running 0 3h19m pod/kube-controller-manager-k8sm-218 1/1 Running 0 3h20m pod/kube-flannel-ds-amd64-6kfhg 1/1 Running 0 3h13m 【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业. pod/kube-flannel-ds-amd64-c4fr4 1/1 Running 0 152m pod/kube-flannel-ds-amd64-qhc2w 1/1 Running 0 151m pod/kube-proxy-7hntq 1/1 Running 0 151m pod/kube-proxy-b4txb 1/1 Running 0 3h21m pod/kube-proxy-bz529 1/1 Running 0 152m pod/kube-scheduler-k8sm-218 1/1 Running 0 3h20m pod【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业./kubernetes-dashboard-6685cb584f-xlk2h 1/1 Running 0 3m5s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 3h21m service/kubernetes-dashboard NodePort 10.104.4.26 <none> 443:31667/TCP 3m5s

通过https访问ui

登录页

Token (令牌) 认证方式登录

1)授权 (所有 name【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.space )

// 创建serviceaccount # kubectl create serviceaccount dashboard-serviceaccount -n kube-system // 创建clusterrolebinding # kubectl create clusterrolebinding dashboard-cluster-admin –clusterrole=cluster-admin –serviceaccount=kube-system:dashboard-serviceaccount

2)获取令牌(用于网页登录)

// 查看口令列表 【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业. # kubectl get secret -n kube-system |grep dashboard-serviceaccount-token dashboard-serviceaccount-token-f45wg kubernetes.io/service-account-token 3 22s // 获取口令 # kubectl describe secret dashboard-serviceaccount-token-f45wg -n kube-system

3)将获取到的token放在令牌里

输入token

4)登录成功

K8S UI

至此,K8S集群+Da【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.shboard搭建成功!

后记

此篇不涉及理论,面向对象是刚接触K8S的朋友,最小成本来搭建一套K8S集群,以最快时间来看到效果,增加学习的信心^_^

给力项目吾爱网创会员可免费下载 加入会员
友情提醒: 请尽量登录购买,防止付款了不发货!
QQ交流群:1059819594 站长微信:qgzmt2
温馨提示:本站提供的一切软件、教程和内容信息都来自网络收集整理,仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,版权争议与本站无关。用户必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

给TA打赏
共{{data.count}}人
人已打赏
行业资讯

二零二一年新番(2022夏季新番一览!7月开播新作动画首播简介概要)

2024-12-16 6:01:27

行业资讯

脱裤子的时候腿部肌肉疼怎么办(“裤子脱了腿张开”,医院让人脸红的妇科检查,没有性生活要做吗)

2024-12-16 6:21:52

近期部分课程提取码提示错误的,一般为8888或9999
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索