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

Docker实战技巧(二):Kubernetes基础操作实战

Kubernetes定位在Saas层,重点解决了微服务大规模部署时的服务编排问题

1、关闭防火墙并设置开机禁用
  systemctl stop firewalld
  systemctl disable firewalld
2、配置repo
  cd /etc/yum.repos.d/
  下载Docker repo
  wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  配置kubernetes repo
  vim kubernetes.repo
  [kubernetes]
  name=Kubernetes Repo
  baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
  gpgcheck=0
  gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
  enabled=1
  查看是否配置成功yum repolist
3、配置gpg
  wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
  wget https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
  rpm --import rpm-package-key.gpg
  rpm --import yum-key.gpg
4、安装docker-ce kubernetes
  yum install docker-ce kubelet kubeadm kubectl -y
5、配置docker初始化
  vi /usr/lib/systemd/system/docker.service
  添加初始化环境变量
  Environment="HTTPS_PROXY=http://www.ik8s.io:10080"
  Environment="NO_PROXY=127.0.0.1/8,172.20.0.0/16"
6、启动docker设置开机自启动
  systemctl start docker
  systemctl enable docker
7、忽略swap警报,启动kubelet
  vi /etc/sysconfig/kubelet
  KUBELET_EXTRA_ARGS="--fail-swap-on=false"
  systemctl enable kubelet.service
  systemctl start kubelet
8、下载k8s镜像
  1)、在github上创建库

    

092a3a3cdc38aae69ae9ef699f6fd699.png

  2)、克隆到本地然后创建Dockerfile

    

cc2c5fba6cb049ab50e426f50c1aeea8.png

  每个内容如下

    

1127a286844d17d9a56d9919f8322c59.png

  然后推送
  3)、在docker hub上创建关联github

    

4d9450963c27d48352cd0ef45b5b22ec.png

  4)、下载镜像,执行下列脚本

    

55926dc49503b5c7481f7090bb284eab.png

  5)、初始化,
    kubeadm init --kubernetes-version=v1.12.1 --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=Swap
  6)、等初始化完成后,配置用户权限
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    然后添加node,在node机上执行
    kubeadm join 192.168.137.200:6443 --token cl60h7.y4o6vpizk64j5cz6 --discovery-token-ca-cert-hash sha256:1fda5b34ecd3abb044ff137e5e74afbeea95cfdb881038ed78961b8d2ef00017
  7)、查看状态
    kubectl get cs
  8)、查看nodes
    kubectl get nodes
  9)、安装flannel
    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    等待一段时间使用kubectl get nodes查看节点的状态为Ready,表示安装成功
    启动一个服务
    加入node时如果报错dial tcp 10.96.0.1:443: getsockopt: no route to host --- kubernetes(k8s)DNS 服务反复重启iptables规则乱了,通过下面命令纠正:
    systemctl stop kubelet
    systemctl stop docker
    iptables --flush
    iptables -tnat --flush
    systemctl start kubelet
    systemctl start docker
    kubectl run nginx-deploy --image=nginx:1.14-alpine --port=80 --replicas=1
    将服务暴露在集群外
    kubectl expose deployment nginx-deploy --name=nginx --port=80 --target-port=80 --protocol=TCP
  10)、查看pod
    kubectl get pods
    查看pod起在哪个节点上
    kubectl get pods -o wide
    查看pod有哪些标签
    kubectl get pods --show-labels

      

e406e9e8a864d4deb3f1c15784a57e40.png

    查看命名空间中的pod
    kubectl get pods --all-namespaces

      

1a917141c15b54c54d15bfef0555c52a.png

    如果Error、Pending、ImagePullBackOff、CrashLoopBackOff都属于启动失败,排查:
      a、查看 /var/log/messages系统日志
      b、kubectl describe pod kube-flannel-ds-amd64-bq6fp --namespace=kube-system 看出node1上flannel镜像下载失败,去node1上手动下载镜像

        

ae2a62a924b743ee495fef97d0609e5b.png

      c、kubectl logs -f kube-flannel-ds-amd64-bq6fp -n kube-system kubedns
  11)、删除pod
    kubectl delete pods <pod NAME>
    (删除后会自动重新创建pod)
  12)、查看services
    kubectl get svc
    查看services都有选择哪些pod,根据标签
    kubectl get svc -o wide

      

ea199c1b5d7e4a354ba8cb956b7f51dc.png

  13)、创建一个容器并运行,名字为nginx-deploy,镜像,端口,使用一个pod
    kubectl run nginx-deploy --image=nginx:1.14-alpine --port=80 --replicas=1
  14)、进入运行中的pod
    kubectl exec nginx-deploy-86bf78c77-kxtch -it sh
  15)、查看deployment
    kubectl get deployment
  16)、查看容器运行在那个node
    kebuctl get node -o wide
  17)、创建service,使用nginx-deploy容器,名称,端口,暴露端口
    kubectl expose deployment nginx-deploy --name=nginx --port=80 --target-port=80
  18)、修改运行实例的个数
    kubectl scale --replicas=3 deployment myapp
  19)、对实例进行升级
    kubectl set image deployment nginx-deploy nginx-deploy=nginx:1.17
  20)、回滚升级
    kubectl rollout undo deployment nginx-deploy
  21)、修改svc
    kubectl edit svc nginx-deploy
    spec:type: NodePort 将type改为 NodePort
    可是在集群外访问node IP

 

 

相关文章:

Docker实战技巧(二):Kubernetes基础操作实战

Kubernetes定位在Saas层,重点解决了微服务大规模部署时的服务编排问题 1、关闭防火墙并设置开机禁用   systemctl stop firewalld   systemctl disable firewalld 2、配置repo   cd /etc/yum.repos.d/   下载Docker repo   wget https://mirrors.aliyun.com/docker-…...

计算机视觉与深度学习-循环神经网络与注意力机制-Attention(注意力机制)-【北邮鲁鹏】

目录 引出Attention定义Attention-based model通俗解释应用在图像领域图像字幕生成&#xff08;image caption generation&#xff09;视频处理 序列到序列学习&#xff1a;输入和输出都是长度不同的序列 引出Attention 传统的机器翻译是&#xff0c;将“机器学习”四个字都学…...

Centos7安装wps无法打开及字体缺失的问题解决

在centos7上安装了最新的wps2019版本的wps-office-11.1.0.11704-1.x86_64.rpm&#xff0c;生成了桌面图标并信任&#xff0c;可以新建文件&#xff0c;但是软件无法打开。在终端执行如下命令&#xff0c;用命令行启动wps&#xff1a; cd /opt/kingsoft/wps-office/office6/ ./…...

华为OD机试真题-会议接待-2023年OD统一考试(B卷)

题目描述: 某组织举行会议,来了多个代表团同时到达,接待处只有一辆汽车,可以同时接待多个代表团,为了提高车辆利用率,请帮接待员计算可以坐满车的接待方案,输出方案数量。 约束: 1、一个团只能上一辆车,并且代表团人数(代表团数量小于30,每个代表团人数小于30)小于…...

mysql explain学习记录

参考了公司内相关博客&#xff0c;实践并记录下&#xff0c;为后面分析并优化索引做准备。 MySQL explain命令是查看MySQL查询优化器如何执行查询的主要方法&#xff0c;可以很好的分析SQL语句的执行情况。 每当遇到执行慢&#xff08;在业务角度&#xff09;的SQL&#xff0c;…...

电压放大电路的作用有哪些(电压放大器)

电压放大电路是电子电路中常见且重要的组件&#xff0c;其主要作用是将输入信号的电压放大到所需的输出电压级别&#xff0c;并保持输入信号的形状和准确度。电压放大电路广泛应用于各种电子设备和系统中&#xff0c;具有以下几个重要的作用&#xff1a; 信号放大&#xff1a;电…...

编译opencv-3.4.5 [交叉编译]

在unbuntu20.04环境下编译opencv3.4.5&#xff0c; cmake 版本&#xff1a;3.27.4 gcc 版本&#xff1a;11.4.0 g版本&#xff1a;11.4.0 在此环境下编译opencv4.5.4正常。 1. 编译时遇到的问题 &#xff08;1&#xff09; Built target libprotobuf make: *** [Makefile:163…...

Canal 实现MySQL与Elasticsearch7数据同步

1 工作原理 canal 模拟 MySQL slave 的交互协议&#xff0c;伪装自己为 MySQL slave &#xff0c;向 MySQL master 发送 dump协议 MySQL master 收到 dump 请求&#xff0c;开始推送 binary log 给 slave (即 canal ) canal 解析 binary log 对象(原始为 byte 流) 优点&…...

网络安全攻防对抗之隐藏通信隧道技术整理

完成内网信息收集工作后&#xff0c;渗透测试人员需要判断流量是否出得去、进得来。隐藏通信隧道技术常用于在访问受限的网络环境中追踪数据流向和在非受信任的网络中实现安全的数据传输。 一、隐藏通信隧道基础知识 &#xff08;一&#xff09;隐藏通信隧道概述 一般的网络通…...

读书笔记:多Transformer的双向编码器表示法(Bert)-2

多Transformer的双向编码器表示法 Bidirectional Encoder Representations from Transformers&#xff0c;即Bert&#xff1b; 第2章 了解Bert模型&#xff08;掩码语言模型构建和下句预测&#xff09; 文本嵌入模型Bert&#xff0c;在许多自然语言处理任务上表现优秀&#…...

Python 基于PyCharm断点调试

视频版教程 Python3零基础7天入门实战视频教程 PyCharm Debug&#xff08;断点调试&#xff09;可以帮助开发者在代码运行时进行实时的调试和错误排查&#xff0c;提高代码开发效率和代码质量。 准备一段代码 def add(num1, num2):return num1 num2if __name__ __main__:f…...

spring security auth2.0实现

OAuth 2.0 的认证/授权流程 jwt只是认证中的一步 4中角色 资源拥有者&#xff08;resource owner&#xff09;、客户端&#xff08;client 第三方&#xff09;、授权服务器&#xff08;authorization server&#xff09;和资源服务器&#xff08;resource server&#xff09;。…...

MySQL(6)LOCK和MVCC

一、锁的分类 按照锁的属性&#xff1a;读锁、写锁、共享锁、排它锁、悲观锁、乐观锁 按照锁的范围&#xff1a;表锁、页锁、间隙锁、临键锁、行锁 按照锁的作用&#xff1a;意向锁、意向共享锁、意向排它锁、IS锁、IX锁 二、MySQL为什么要有锁 锁是计算机协调多个进程或线程并…...

最新IDE流行度最新排名(每月更新)

2023年09月IDE流行度最新排名 顶级IDE排名是通过分析在谷歌上搜索IDE下载页面的频率而创建的 一个IDE被搜索的次数越多&#xff0c;这个IDE就被认为越受欢迎。原始数据来自谷歌Trends 如果您相信集体智慧&#xff0c;Top IDE索引可以帮助您决定在软件开发项目中使用哪个IDE …...

I2C的上拉电阻如何计算?

说明&#xff1a; 1、本文只说明I2C上拉电阻的最小值如何计算。 2、I2C最小值和最大值计算的详细原理可以参考这篇文章&#xff1a;https://mp.weixin.qq.com/s/ZvJJ0rPRd_STULj8g1H81A。 3、I2C最小值的计算方式比较简单&#xff0c;在实际应用中计算出最小值&#xff0c;然后…...

Centos下安装 oracle11g 博客2

[oraclewangmengyuan database]$ ./runInstaller -silent -responseFile /home/oracle/database/response/db_install.rsp -ignorePrereq ./runInstaller -silent -responseFile /home/oracle/database/response/db_install.rsp -ignorePrereq 正在启动 Oracle Universal Insta…...

记一次逆向某医院挂号软件的经历

背景 最近家里娃需要挂专家号的儿保&#xff0c;奈何专家号实在过于抢手&#xff0c;身为程序员的我也没有其他的社会资源渠道可以去弄个号&#xff0c;只能发挥自己的技术力量来解决这个问题了。 出师不利 首先把应用安装到我已经 Root 过的 Pixel 3 上面&#xff0c;点击应…...

Canal实现Mysql数据同步至Redis、Elasticsearch

文章目录 1.Canal简介1.1 MySQL主备复制原理1.2 canal工作原理 2.开启MySQL Binlog3.安装Canal3.1 下载Canal3.2 修改配置文件3.3 启动和关闭 4.SpringCloud集成Canal4.1 Canal数据结构![在这里插入图片描述](https://img-blog.csdnimg.cn/c64b40c2231a4ea39a95aac81d771bd1.pn…...

Kafka的消息传递保证和一致性

前言 通过前面的文章&#xff0c;相信大家对Kafka有了一定的了解了&#xff0c;那接下来问题就来了&#xff0c;Kafka既然作为一个分布式的消息队列系统&#xff0c;那它会不会出现消息丢失或者重复消费的情况呢&#xff1f;今天咱们就来一探。 实现机制 Kafka采用了一系列机…...

Docker 部署 Firefly III 服务

拉取最新版本的 Firefly III 镜像&#xff1a; $ sudo docker pull fireflyiii/core:latest在本地预先创建好 upload 和 export 目录, 用于映射 Firefly III 容器内的 /var/www/html/storage/upload 和 /var/www/html/storage/export 目录。 使用以下命令来运行 Firefly III …...

家庭装修公司网站方案策划2026

你的装修公司网站&#xff0c;是在花钱还是在赚钱&#xff1f;直接问你一个问题&#xff1a;你的网站上个月带来了几条有效询盘&#xff1f;如果你的回答是”不知道”&#xff0c;或者”好像有几条吧&#xff0c;但成单的没有”——那这篇文章你得认真看完。接触过数十家装修公…...

RPA流程进阶:在Uibot中集成Python插件实现复杂数据处理

1. 为什么要在Uibot中集成Python插件&#xff1f; 很多刚开始接触RPA的朋友可能会有疑问&#xff1a;Uibot本身已经提供了丰富的自动化命令&#xff0c;为什么还要折腾Python插件&#xff1f;这个问题我在三年前第一次用Uibot处理Excel报表时就深有体会。当时需要合并20多个分公…...

基于Vue的青年志愿者乡村服务管理系统[vue]-计算机毕业设计源码+LW文档

摘要&#xff1a;随着乡村振兴战略的深入实施&#xff0c;青年志愿者在乡村服务中的作用日益凸显。为了提高青年志愿者光明村乡村服务的管理效率和质量&#xff0c;本文设计并实现了一个基于Vue的青年志愿者乡村服务管理系统。本文详细阐述了系统的开发背景、相关技术、需求分析…...

杨氏矩阵找第N大(小)的O(N)线性算法 LeetCode 378. Kth Smallest Element in a Sorted Matrix 373. Find K Pairs 钓鱼问题

杨氏矩阵&#xff1a;一个N*N的矩阵&#xff0c;它的每行每列都单调递增(或者宽松一些,单调不减)&#xff0c;即a[i][j]<a[i1][j], a[i][j]<a[i][j1]。遇到的两道面试题&#xff1a; 1. 输出杨氏矩阵中最小的N个数。 2. 两个升序数组A和B&#xff0c;长度都是N。从两个数…...

WRF-CHEM 实战指南(一):MEIC清单的获取、适配与namelist关键配置

1. MEIC排放清单&#xff1a;WRF-CHEM模拟的起点 刚开始接触WRF-CHEM时&#xff0c;最让我头疼的就是找不到合适的人为排放源数据。国内研究常用的MEIC清单&#xff08;Multi-resolution Emission Inventory for China&#xff09;虽然权威&#xff0c;但实际操作中会遇到各种&…...

NAS不只是存文件!极空间Docker部署汉化游戏全攻略(含避坑技巧)

极空间NAS变身游戏主机&#xff1a;Docker部署汉化游戏的完整实践指南 你是否曾想过&#xff0c;那台安静躺在角落里的NAS设备&#xff0c;除了存储照片和电影外&#xff0c;还能摇身一变成为你的私人游戏服务器&#xff1f;极空间NAS凭借其出色的硬件性能和友好的操作界面&…...

如何用GHelper替代Armoury Crate,让华硕笔记本性能与续航双丰收?

如何用GHelper替代Armoury Crate&#xff0c;让华硕笔记本性能与续航双丰收&#xff1f; 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus,…...

英雄联盟录像编辑终极指南:免费开源工具League Director完全教程

英雄联盟录像编辑终极指南&#xff1a;免费开源工具League Director完全教程 【免费下载链接】leaguedirector League Director is a tool for staging and recording videos from League of Legends replays 项目地址: https://gitcode.com/gh_mirrors/le/leaguedirector …...

Open UI5 源代码解析之885:OverflowToolbarAssociativePopoverControls.js

源代码仓库: https://github.com/SAP/openui5 源代码位置:src\sap.m\src\sap\m\OverflowToolbarAssociativePopoverControls.js OverflowToolbarAssociativePopoverControls.js 深度解析 文件定位与总体结论 OverflowToolbarAssociativePopoverControls.js 是 sap.m 里一…...

GraalVM原生镜像与MongoDB Java驱动:构建极致性能的微服务应用

GraalVM原生镜像与MongoDB Java驱动&#xff1a;构建极致性能的微服务应用 【免费下载链接】mongo-java-driver The official MongoDB drivers for Java, Kotlin, and Scala 项目地址: https://gitcode.com/gh_mirrors/mo/mongo-java-driver 在当今云原生和微服务架构盛…...