From Hyper-V Create Ubuntu_Server To Install Docker and Kubelnets

在这里插入图片描述
新建
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
存在了一台虚拟机UbuntuServer = Master
在这里插入图片描述
启动node_one
click node_one for two once

Ubuntu_Server Install Begin
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Enter

输入用户名
密码

Login Sucessful
在这里插入图片描述
input : ss- antp
在这里插入图片描述
确认点: SSH have Installed

input : ip addr
在这里插入图片描述
确认点:IP IS 192.17.197.21

WIN + R CMD 远程连接 Ubuntu Server

input: ssh node_one@172.17.197.21
在这里插入图片描述
input : yes

在这里插入图片描述
input : your password
在这里插入图片描述
确认点 : connect successful

Now Install Docker !

在这里插入图片描述
在这里插入图片描述

input : curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

input : your password

output:ok
在这里插入图片描述
input : sudo add-apt-repository “deb https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable”

output:
在这里插入图片描述
input: apt update && apt install docker-ce
–更新并安装 docker-ce 非企业版

input: docker run hello-world

output: command ‘docker’ not found
在这里插入图片描述
–根据提示
input: sudo apt install docker.io
output:
在这里插入图片描述
input:Y
在这里插入图片描述
Download Begin
在这里插入图片描述
在这里插入图片描述
Docker Installed
Now to test !
input : docker run hello-world
output:
在这里插入图片描述

–安装成功

Now Install kubernetes !
–首先配置更新源头

input: ls /etc/apt/sources.list.d
–确认目录 是否软件 kubernetes,同样作为确定安装成功/失败的手段

input : echo “deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main” | sudo tee -a /etc/apt/sources.list.d/kubernetes.list

output:
在这里插入图片描述
–访问阿里云镜像成功

input : sudo gpg --keyserver keyserver.ubuntu.com --recv-keys BA07F4FB #对安装包进行签名

output:在这里插入图片描述
–签名成功

input: sudo gpg --export --armor BA07F4FB | sudo apt-key add -

output:
在这里插入图片描述
input: sudo apt-get update

output:
在这里插入图片描述

input : ls /etc/apt/sources.list.d
output:
在这里插入图片描述
kubernetes show in list
update source sucessful !
–更新源配置成功

input :
nano /etc/fstab #永久关闭,注释掉swap那一行,推荐永久关闭
output:

在这里插入图片描述
–Now Step two Install kubernetes !–
–k8s 的 4个部分
input:
sudo apt-get install kubelet
output:
在这里插入图片描述
Y
在这里插入图片描述
input:
sudo apt-get install kubeadm
output:
在这里插入图片描述
Y
在这里插入图片描述
input:
sudo apt-get install kubectl

output:
在这里插入图片描述
input:
sudo apt-get install kubernetes-cni
output:
在这里插入图片描述
以上,安装完毕;

设置开机启动:
input:
sudo systemctl enable kubelet && systemctl start kubelet
–kubelet contorl docker

output:
在这里插入图片描述
查看kubectl版本:
input : kubectl version
output:
在这里插入图片描述
共配置三台虚拟机,分别为:
winning_8201
node_one
node_two

use vi editor for

  1. 节点
    input: sudo vi /etc/hostname
    在这里插入图片描述
    click : o
    进入编辑模式
    在这里插入图片描述
主节点子节点1子节点2
unbuntuservernode_onenode_two

click Esc 退出编辑模式
click 半角 分号 :

input: wq

  • 注: wq保存文件并退出vi 编辑
    在这里插入图片描述
    确认点:返回ubuntu 主界面
    在这里插入图片描述
  1. IP
    配置当前虚拟机IP地址 把DHCP的IP改为固定IP:
    url is /etc/netplan/50-cloud-init.yaml
    确认 50-cloud-init.yaml 配置文件是否在此 路径下

input: cd /etc/netplan/

  • 注:进入( cd) /etc/netplan/
    在这里插入图片描述
    在这里插入图片描述
    input:ls

  • 注:查看当前文件夹下的列表
    output:在这里插入图片描述

  • 进行修改
    input: sudo vi 50-cloud-init.yaml
    在这里插入图片描述
    output:
    在这里插入图片描述

  • 进入vi编辑器

  • 通过之前 ip addr 确认的ip 进行输入

输入ifconfig
inet = ip
broadcast = gateway4

input:
network:
ethernets:
eth0:
addresses: [172.17.197.25/28] #ip && 子网掩码
dhcp4: false
gateway4: 172.17.197.25 #网关
# nameservers:
# addresses: [172.17.197.25]
#optional : true
version: 2
- - 因为没有外网所以不需要输入DNS
click : Esc
shift + :
input : wq
在这里插入图片描述

output:
在这里插入图片描述

input : sudo vi /etc/hosts
在这里插入图片描述
进行如下修改:
172.17.197.25 gcr.io
172.17.197.25 k8s.gcr.io
172.17.197.25 quay.io
172.17.197.25 cr.zdgk.com.cn
172.17.197.21 node_one
172.17.197.22 node_two

每台机器配置完毕后,进行netplan的重启;
input : sudo netplan apply

  • 以上两步操作每台机器都要做!!!

配置Master节点的k8s网络

创建工作目录:
input : mkdir ~/k8s
input: cd ~/k8s

output:
在这里插入图片描述

  • 工作目录创建成功

生成配置文件:(这部操作仅在master下执行)
在~/k8s$ 的路径下

input: kubeadm config print init-defaults ClusterConfiguration > kubeadm.conf

output:
在这里插入图片描述
在~/k8s$ 的路径下
input: vi kubeadm.conf

修改advertiseAddress为自己的ip地址,初始化为 1.2.3.4
advertiseAddress: 172.17.197.25

#配置pod地址
networking:
dnsDomain: cluster.local
podSubnet: 10.244.0.0/16
serviceSubnet: 10.96.0.0/12

output:


  • groups:
    • system:bootstrappers:kubeadm:default-node-token
      token: abcdef.0123456789abcdef
      ttl: 24h0m0s
      usages:
    • signing
    • authentication
      kind: InitConfiguration
      localAPIEndpoint:
      advertiseAddress: 172.17.197.25
      bindPort: 6443
      nodeRegistration:
      criSocket: /var/run/dockershim.sock
      name: ubuntuserver
      taints:
    • effect: NoSchedule
      key: node-role.kubernetes.io/master

apiServer:
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns:
type: CoreDNS
etcd:
local:
dataDir: /var/lib/etcd
imageRepository: k8s.gcr.io
kind: ClusterConfiguration
kubernetesVersion: v1.18.0
networking:
dnsDomain: cluster.local
podSubnet: 10.244.0.0/16
serviceSubnet: 10.96.0.0/12
scheduler: {}
“kubeadm.conf” 39L, 865C


在这里插入图片描述
拉取k8s需要的镜像
– 由于官方镜像地址被墙,所以我们需要首先获取所需镜像以及它们的版本。然后从国内镜像站获取。

在~/k8s$ 的路径下
input:
kubeadm config images list --config kubeadm.conf

获取镜像地址

以上参考

https://blog.csdn.net/zhangpeterx/article/details/104118210
虽然不够基础,但有一定的帮助;到镜像下载部分,由于版本升级,导致我这边无法效仿,采用以下方式;

input:
vi k8s_imgs.sh

output:

按照以下格式对文件进行调整 对齐


在这里插入图片描述


在这里插入图片描述
input :
chmod +x k8s_imgs.sh

–给k8s_imgs.sh 赋予权限

input:ls

output: 我们可以看到 k8s 目录下(目录是蓝色的)
有了一个可执行的 k8s_imgs.sh(可执行文件是绿色)文件
在这里插入图片描述

下面进行 一些配置的补全
补全之后进行 ./k8s_imgs.sh + master ip 地址 进行镜像的下载

在这里插入图片描述
这边是准备进行Hostname配置的一个修改
参考机上的路径为 : vi /etc/cloud/cloud.conf

而我的机器上打开却是 空白的 如下图
在这里插入图片描述
这边初步判断为应该是名字不同
输入 cd /etc/cloud/
输入 ls 确认该路径下有什么
在这里插入图片描述
看到了俩个文件 cloud.cfg 与模板最为相近

/etc/cloud/路径下

input: sudo vi cloud.cfg

change:
preseve hostname: false - > true

在这里插入图片描述
hostname 为主机名

input:hostnamectl set-hostname node_two

–修改你指定的主机名
input: sudo su
–切换为超级用户root

input:reboot 重启

ssh 连接虚拟机

input:hostname
output:node_two

在这里插入图片描述

Install Docker:
添加配置文件

Setup daemon.

input: sudo su

input:
cat > /etc/docker/daemon.json <<EOF
{
“insecure-registries” : [“172.17.197.25”, “gcr.io”, “k8s.gcr.io”, “quay.io”],
“registry-mirrors”: [“https://wgs2temd.mirror.aliyuncs.com”],
“exec-opts”: [“native.cgroupdriver=systemd”],
“log-driver”: “json-file”,
“log-opts”: {
“max-size”: “100m”
},
“storage-driver”: “overlay2”
}
EOF

–以上ip地址为当前虚拟机的地址

–所有node的地址都指向master 就是ip地址均为master的

在这里插入图片描述

Restart docker.

input :
systemctl daemon-reload && systemctl restart docker

input : systemctl status docker

output:
在这里插入图片描述
Active(runnning) 绿色
–点击Q 同 Ctrl + c 均可退出

Letting iptables see bridged traffic

input:
echo br_netfilter >> /etc/modules-load.d/modules.conf
modprobe br_netfilter

input:
#Check kernel module
lsmod | grep br_netfilter

cat < /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system


访问不了外网
ping www.baidu.com

sudo vi /etc/netplan/50-cloud-init.yaml
是这个配置文件导致的
在这里插入图片描述
在这里插入图片描述


Deploy Private Docker Registry

docker 登记 仅需在master上执行

input : docker pull registry:2
output:
在这里插入图片描述
input:docker run -d -p 80:5000 --restart=always -v /mnt/registry:/var/lib/registry --name registry registry:2
output:
在这里插入图片描述
获取注册码:
cb1c5fa6f20c7e5c33482bbf03e1fb2940f2107be87ac1dd74576c61fe408ac2

修改imgs.sh 文件 进行正确下载

input:
vi imgs.sh
在这里插入图片描述
input:


#!/bin/bash

urls=($1/pause:3.2=registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2
$1/kube-controller-manager:v1.18.3=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.18.3
$1/kube-scheduler:v1.18.3=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.18.3
$1/kube-proxy:v1.18.3=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.18.3
$1/kube-apiserver:v1.18.3=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.18.3
$1/etcd:3.4.3-0=registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3-0
$1/coredns:1.6.7=registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7
$1/kubernetes-ingress-controller/nginx-ingress-controller:0.31.0=registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:0.31.0)

function prepare_k8s_images() {
for url in u r l s [ @ ] ; d o I F S = ′ = ′ r e a d − r k e y v a l u e < < < " {urls[@]}; do IFS='=' read -r key value <<<" urls[@];doIFS==readrkeyvalue<<<"url"
docker pull ${value} && docker tag ${value} ${key} && docker push ${key} && docker rmi ${key} && docker rmi ${value} done
}

if [ $# -ne 1 ]; then
echo "Usage: $0 "
exit 1
fi

prepare_k8s_images
~


在这里插入图片描述

prepare_k8s_images.sh

补全之后进行 ./k8s_imgs.sh + master ip 地址 进行镜像的下载

input: ./imgs.sh 172.17.197.25
output:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Initialize First Control Plane Node

  1. 前提虚拟机最底要求两核

  2. 对hosts 文件进行修改
    input:
    172.17.197.25 gcr.io
    172.17.197.25 k8s.gcr.io
    172.17.197.25 quay.io
    172.17.197.25 cr.zdgk.com.cn
    172.17.197.25 cluster-endpoint
    172.17.197.21 node_one
    172.17.197.22 node_two

input:
sudo kubeadm init --image-repository=172.17.197.25 --control-plane-endpoint=cluster-endpoint --kubernetes-version=1.18.3 --pod-network-cidr=10.96.0.0/16 --upload-certs

–172.17.197.25 master ip地址

– 如果执行此操作中间发生了中断,需要重启集群配置,sudo kubeadm reset

output:
Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown ( i d − u ) : (id -u): (idu):(id -g) $HOME/.kube/config


此段输出用于 Node 加入集群 或者 其他Master 加入集群
kubeadm join cluster-endpoint:6443 --token psv9rp.yui74mjclmhp2cgp
–discovery-token-ca-cert-hash sha256:25ba8a2c293762982a5bb5aeec452ed1f4bf9711a01d04ed4d869fb6932bc1b5
–control-plane --certificate-key 16114039102d2ef2785a48a67624c6b47eb9579c62145cb07f9ef60f60cab047
在这里插入图片描述


– Kubernetes control-plane 成功!

– 以用户角色执行

input:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown ( i d − u ) : (id -u): (idu):(id -g) $HOME/.kube/config

  1. 用cmd 向 ubuntu 系统中导入 calico.yml 文件
    此文件为本地导入 位于D盘下
    在此文件下 Ctrl + F cidr 确认地址是否正确
    在这里插入图片描述
  2. 在这里插入图片描述
    查看到文件已导入成功

–导入方法
在这里插入图片描述
D:>scp calico.yml winning_8201@172.17.197.25:~/
winning_8201@172.17.197.25’s password:
calico.yml

input: kubectl config get-contexts
output:
在这里插入图片描述
这里我们可以看到
kubectl AUTHINFO
处已经产生了值:kubernetes-admin 说明 3. 这一步真正的执行成功

input:
kubectl apply -f calico.yml

output:
在这里插入图片描述

NOW Join Work Node

  1. 切换为Node虚拟机

sudo kubeadm join 172.17.197.25:6443 --token psv9rp.yui74mjclmhp2cgp
–discovery-token-ca-cert-hash sha256:25ba8a2c293762982a5bb5aeec452ed1f4bf9711a01d04ed4d869fb6932bc1b5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值