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

news2024/10/7 14:25:10

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上创建库

    

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

    

  每个内容如下

    

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

    

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

    

  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

      

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

      

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

        

      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

      

  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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1015086.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

torch.nn.Parameter()函数

引言 在很多经典网络结构中都有nn.Parameter()这个函数&#xff0c;故对其进行了解 pytorch官方介绍&#xff1a; 语法结构&#xff1a; torch.nn.parameter.Parameter(dataNone, requires_gradTrue) """ data (Tensor) – parameter tensor. —— 输入得是…

聊聊Spring事务同步器TransactionSynchronization

在一些业务场景中可能我们需要去对某一个spring事务的生命周期进行监控&#xff0c;比如在这个事务提交&#xff0c;回滚&#xff0c;被挂起的时候&#xff0c;我们想要去执行一些自定义的操作&#xff0c;这怎么去做呢&#xff1f;其实spring作为一个高扩展性的框架&#xff0…

中秋特辑:Java事件监听实现一个猜灯谜小游戏

众所周知&#xff0c;JavaSwing是Java中关于窗口开发的一个工具包&#xff0c;可以开发一些窗口程序&#xff0c;然后由于工具包的一些限制&#xff0c;导致Java在窗口开发商并没有太多优势&#xff08;当然也有一些第三方的工具包也很好用&#xff09;&#xff0c;不过&#x…

使用Python CV2融合人脸到新图片--优化版

优化说明 上一版本人脸跟奥特曼图片合并后边界感很严重&#xff0c;于是查找资料发现CV2还有一个泊松函数很适合融合图像。具体代码如下&#xff1a; import numpy as np import cv2usrFilePath "newpic22.jpg" atmFilePath "atm2.jpg" src cv2.imrea…

java基础-集合-ArrayList(JDK1.8)源码学习

文章目录 类图新增addensureCapacityInternalensureExplicitCapacitygrowhugeCapacity 删除removefastRemove 遍历Iterator 类图 新增 add public boolean add(E e) {// 根据注释可知 Increments modCount!!&#xff0c;modCount下面详解ensureCapacityInternal(size 1); //…

特斯拉Dojo超算:AI训练平台的自动驾驶与通用人工智能之关键

特斯拉公开Dojo超算架构细节&#xff0c;AI训练算力平台成为其自动驾驶与通用人工智能布局的关键一环 在近日举行的Hot Chips 34会议上&#xff0c;特斯拉披露了其自主研发的AI超算Dojo的详细信息。Dojo是一个可定制的超级计算机&#xff0c;从芯片到系统全部由特斯拉自主设计…

如何优化网站SEO(百度SEO优化的6个方案及密度)

一&#xff1a;蘑菇号https://www.mooogu.cn/ SEO优化是提高网站在搜索引擎中排名的关键技术。对于新网站而言&#xff0c;如何快速提高百度排名是每个站长需要关注的问题。下面我们将介绍新网站百度SEO具体方法。 二&#xff1a; 首先&#xff0c;通过网站架构优化来提高页…

解决5053无法安装驱动的故障

用5053连接车机&#xff0c;发现驱动上面有一个问号&#xff0c;看来驱动出问题了&#xff0c;试着用原来的办法无法强行安装&#xff0c;出现如下报错: 主要原因是老旧的设备驱动程序没有及时更新&#xff0c;遭到了新系统的嫌弃&#xff0c;导致数字签名验证失败&#xff0c;…

golang for循环append的数据重复

原因&#xff0c;因为使用了& 需要增加一行&#xff0c;问题解决

华为云云耀云服务器L实例评测| 搭建属于自己的第一个中秋快乐网页

华为云服务器 1 如何快速获得一个华为云服务器1.1 注册华为云账号1.2 选择华为云服务器实例 (云耀L系列)1.3 选择服务器区域1.4 选择实例规格1.5 付款界面确认实例参数&#xff0c;支付即可 2 运行自己的服务器2.1 找到自己的服务器控制面板2.2 了解服务器面板2.3 登录我们的服…

【网络编程】TCP Socket编程

TCP Socket编程 1. ServerSocket2. Socket3. TCP的长短连接4. Socket 通信模型5. 代码示例&#xff1a;TCP 回显服务器 流套接字&#xff1a; 使用传输层TCP协议 TCP: 即Transmission Control Protocol&#xff08;传输控制协议&#xff09;&#xff0c;传输层协议。 TCP的特点…

Pycharm配置环境以及Teminal不能使用问题解决

Pycharm配置环境 配置好环境后点击Terminal Teminal不能使用问题解决 我的报错信息&#xff1a; Import-Module : 无法加载文件 D:\Anaconda\shell\condabin\Conda.psm1&#xff0c;因为在此系统上禁止运行脚本。 解决方案&#xff1a; 第一步.&#xff1a;在 Windows 下用…

K8S名称空间和资源配额

Kubernetes 支持多个虚拟集群&#xff0c;底层依赖于同一个物理集群。 这些虚拟集群被称为名称空间。名称空间namespace是k8s集群级别的资源&#xff0c;可以给不同的用户、租户、环境或项目创建对应的名称空间&#xff0c;例如&#xff0c;可以为test、dev、prod环境分别创建各…

服务器搭建(TCP套接字)-基础版(服务端)

一、socket 1.1、vim man查看socket :!man socket1.2、 依赖的头文件 #include <sys/types.h> #include <sys/socket.h>1.3、原型 int socket(int domain, int type, int protocol);domain说明AF_INETIPV4协议AF_INET6IPV6协议AF_LOCALUnix域协议 type说明S…

JavaScript中的垃圾回收机制

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ JavaScript的垃圾回收机制⭐ 内存管理⭐ 引用计数⭐ 标记-清除算法⭐ 内存泄漏⭐ 性能优化⭐ 使用delete操作符⭐ 注意循环中的变量引用⭐ 使用工具进行内存分析⭐ 使用合适的数据结构⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探…

企业架构LNMP学习笔记54

企业架构NoSQL数据库之MongoDB。 学习目标和内容&#xff1a; 1&#xff09;能够简单描述mongoDB的使用特点&#xff1a; 2&#xff09;能够安装配置启动MongoDB&#xff1b; 3&#xff09;能够使用命令行客户端简单操作MongoDB&#xff1b; 4&#xff09;能够实现基本的数…

vsftp3.0 匿名用户,本地用户,虚拟用户

整体配置介绍&#xff1a; 进入vsftpd配置文件 vim /etc/vsftpd/vsftpd.conf //输入i开始编辑&#xff0c;修改后按esc退出编辑&#xff0c;输入:wq后回车保存并退出anonymous_enableYES #接受匿名用户&#xff0c;默认无密码请求 lo…

01_Elasticsearch入门介绍

01_Elasticsearch入门介绍 Elasticsearch 是什么1、什么是搜索&#xff1f;2、如果用数据库做搜索会怎么样&#xff1f;3、什么是全文检索和Lucene&#xff1f;4、什么是Elasticsearch&#xff1f;5、Elasticsearch的功能6、Elasticsearch的适用场景7、Elasticsearch的特点 什么…

Anaconda成功安装之后没有在菜单列和桌面显示图标

1、进入命令提示符 2、输入cmd 3、进入到Anaconda安装路径 比如我装在F盘 4、然后输入 python .\Lib\_nsis.py mkmenus 回车 这时候菜单列就可以看到了

第 4 章 串(串的堆分配存储实现)

1. 背景说明 实现基本与定长分配一致&#xff0c;不过将定长分配改为动态分配&#xff0c;解除了长度限制&#xff0c;实现更加灵活。 2. 示例代码 1) status.h /* DataStructure 预定义常量和类型头文件 */#ifndef STATUS_H #define STATUS_H#define CHECK_NULL(pointer) if …