zoukankan      html  css  js  c++  java
  • k8s dockerk个人学习(1)

    虚拟机部署k8s

    1. 创建虚拟机

     虚拟机用的是virtualBox和vagrant工具,百度安装virtualBox和vagrant

     创建vagrant目录并创建文件Vagrantfile内容为

    Vagrant.configure("2") do |config|
      config.vm.box = "ubuntu/bionic64"
      config.vm.box_check_update = false
      config.vm.provider "virtualbox"
      #config.vm.network "public_network"
    
      $num_vms = 3
      (1..$num_vms).each do |id|
        config.vm.define "kube-node#{id+1}" do |node|
          node.vm.hostname = "kube-node#{id+1}"
          node.vm.network :private_network, ip: "10.64.4.#{id+1}",  auto_config: true
          config.vm.network "forwarded_port", guest: 8080, host: 8080, auto_correct: true # kube-apiserver
          config.vm.network "forwarded_port", guest: 8086, host: 8086, auto_correct: true # kubectl proxy
          config.vm.network "forwarded_port", guest: 443, host: 4443, auto_correct: true # harbor
          node.vm.provider :virtualbox do |vb, override|
            vb.name = "kube-node#{id+1}"
            vb.gui = false
            vb.memory = 2048
            vb.cpus = 1
          end
        end
      end
    end
    

      a.进入vagrant目录下运行命令vagrant up创建虚拟机,这时会创建3台虚拟机分别是kube-node2,kube-node3,kube-node4

     b.设置kube-node2的cpu数为2(安装k8s时需要),在virtualBox管理器中可以设置

     2.配置虚拟机环境

     a.进入虚拟机运行命令vagrant ssh kube-node2

       b.设置root的登录密码输入命令sudo passwd root 之后输入2次设置的密码

       c.设置允许远程登录修改/etc/ssh/sshd_config文件,执行命令/etc/ssh/sshd_config修改内容

     PasswordAuthentication yes
     UsePAM no
     PermitRootLogin yes
     RSAAuthentication yes
     PubkeyAuthentication yes

      sshd_config文件中没有就添加上有就修改为上述保存退出后,运行命令sudo service sshd restart,其他2台虚拟机同样执行

     d.修改机器的hostname,hostname -i返回可路由的IP地址(这是为了解决k8s中Flanne网络中pod无法互访)

           sudo vim /etc/hosts

         将最后一行 127.0.1.1      kube-node2      kube-node2

      修改为10.64.4.2       kube-node2      kube-node2

           其他2台机器也改成ip对应的值

     3.安装docker

     用root进入,并每台机器上执行

    sudo apt-get update && apt-get install docker.io 命令安装doucker

    4.安装k8s等工具

          用root进入,并每台机器上执行

      a. sudo apt-get update && apt-get install -y apt-transport-https
      b. curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add # 添加key
      c. 在/etc/apt/sources.list.d/kubernetes.list文件中添加deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
           d. apt-get update # 更新
      e. apt-get install -y kubelet kubeadm kubectl #安装

    5.初始化 master

      用root进入kube-root2中执行

        kubeadm init --apiserver-advertise-address 10.64.4.2 --pod-network-cidr=10.244.0.0/16

           执行完可能会报ERROR ImagePull 可能是墙外镜像下不下来需要翻墙,我们可以用阿里云免费获取镜像.

           免费获取墙外镜像  https://blog.csdn.net/yjf147369/article/details/80290881

    6.   配置 kubectl

          切换到普通用户vagrant下, 执行

      su vagrant 
    mkdir -p $HOME/.kube
      sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
      sudo chown $(id -u):$(id -g) $HOME/.kube/config
      echo "source <(kubectl completion bash)" >> ~/.bashrc

    7.安装pod网络,在root用户下执行

    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

    8.添加k8s-node3和k8s-node4

     在5步骤成功后会有  kubeadm join 10.64.4.2:6443 --token token --discovery-token-ca-cert-hash sha256: 替换相应的值在其他2个节点执行

  • 相关阅读:
    Maven教程
    Logback文件这么配置,TPS提高至少10倍
    查看ElasticSearch服务状态和结果的URL
    no main manifest attribute, in demo-1.0.jar
    Rocketmq原理&最佳实践
    【ORACLE】Oracle提高篇之DECODE
    ZooKeeper架构原理你学会了吗?
    01:kubernetes概述
    08:图形页面管理监控
    07:企业级镜像仓库Harbor
  • 原文地址:https://www.cnblogs.com/seablog/p/10491263.html
Copyright © 2011-2022 走看看