hi,你好!欢迎访问本站!登录
本站由网站地图腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 教程 - 杂谈 - 正文 君子好学,自强不息!

hyper-v假造机上的centos多节点k8s集群实践

2019-11-18杂谈搜奇网41°c
A+ A-

之前体验了minikube,掉深坑里至今还没有爬出来,玩单节点用minikube够了,

但傻瓜试的装置让人对k8s明白不是很深切(坑),而且多节点彷佛有什么新鲜的题目

所以我此次要用两个虚拟机来模仿k8s集群   一主节点一事变节点

hostname      ipaddr   cpu   硬盘  内存  OS    docker  k8s

m1    1921.168.1.200  2    20G   2G    centos7  18    1.16.2

w1    1921.168.1.201  2    20G   2G    centos7  18    1.16.2

由于我运用的虚拟机驱动是hyper-v  所以要记得每一个虚拟机封闭动态内存  关于虚拟机的装置设置这里就不再深切议论

虚拟机交换机

 

动态内存封闭

 

 

 

我先建立一个虚拟机,装置完docker,k8s和一些其他设置后,再复制,如许比较快一点

然则k8s集群里的节点  mac和uuid不能反复,这个到时再想方法修正

装置centos时挑选最小装置,图形界面不装置,如许比较省计算机资本

最小装置完成重启后,  须要做的事变 1.修正网卡为开机自动启动,2.翻开ssh 

先来翻开ssh吧,  hyper-v内里操纵不方便 我要用powersheel衔接上去

vi /etc/ssh/sshd_config  

 作废两行注,由于我是用root登录,所以要将permitrootlogin设置成yes

 

 

 

重启效劳 

service sshd restart

 

接下来把网卡设置成开机自启,由于如今网卡是没有启动的

先ip addr 查一下网卡称号  然后进入到 /etc/sysconfig/network-scripts/目次  ls|grep 网卡称号

 

 

 

 

本来的设置为 动态猎取ip,不开机自动启动

 

 

 修正成,开机自动启动, 静态ip

 

 修正hosts文件

vi /etc/hosts

在背面加上两个节点的host

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.200 m1
192.168.1.201 w1

 

 保留后

reboot 指令重启

治理员权限翻开powershell    输入ssh root@192.168.1.200衔接

假如涌现

 

 

 

到用户目次/.ssh/known_hosts 编辑删除现有ip的那一行重连即可

连上来后,先更新yum

install -y yum-utils   device-mapper-persistent-data   lvm2
yum update

 

再设置docker仓储

yum-config-manager     --add-repo     https://download.docker.com/linux/centos/docker-ce.repo

 

然后装置18版本的docker,装置太高k8s用不了

yum install docker-ce-18.09.6 docker-ce-cli-18.09.6 containerd.io

 

装置完成后 设置启动docker并设置开机启动

systemctl start docker && systemctl enable docker

接下来设置docker 的镜像源, 不然将被墙

[root@localhost ~]# mkdir -p /etc/docker
[root@localhost ~]# tee /etc/docker/daemon.json <<-'EOF'
> {
>   "registry-mirrors": ["https://本身去注册本身的不懂百度.mirror.aliyuncs.com"]
> }
> EOF

把daemon.json 改名为daemon.conf

mv /etc/docker/daemon.json  /etc/docker/daemon.conf

 

设置好重启一下docker

[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker

 

末了设置k8s相干的设置 先设置hostname 为主节点 m1 (master node

[root@localhost ~]# hostnamectl set-hostname m1

从新登录一下考证是不是修正胜利

[root@localhost ~]# exit
logout
Connection to 192.168.1.200 closed.
PS C:\WINDOWS\system32> ssh root@192.168.1.200
root@192.168.1.200's password:
Last login: Mon Nov  4 20:42:51 2019 from 192.168.1.104
[root@m1 ~]#

关防火墙

[root@m1 ~]# systemctl stop firewalld
[root@m1 ~]# systemctl disable firewalld

 

禁用swap

[root@m1 ~]# swapoff -a
[root@m1 ~]# sed -i.bak '/swap/s/^/#/' /etc/fstab

修正网桥形式

[root@m1 ~]# sysctl net.bridge.bridge-nf-call-iptables=1
[root@m1 ~]# sysctl net.bridge.bridge-nf-call-ip6tables=1
[root@m1 ~]# cat <<EOF >  /etc/sysctl.d/k8s.conf
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1
> EOF
[root@m1
~]# sysctl -p /etc/sysctl.d/k8s.conf

给yum 加kubernetes 阿里云 镜像源

[root@m1 ~]# cat <<EOF > /etc/yum.repos.d/kubernetes.repo
> [kubernetes]
> name=Kubernetes
> baseurl=https://mirrors.aliyun.com/kubernetes/yum/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缓存

yum clean all
yum -y makecache

 

装置 kubeadm kubelet kubectl

  • kubelet 运行在集群一切节点上,用于启动Pod和容器等对象的东西
  • kubeadm 用于初始化集群,启动集群的敕令东西
  • kubectl 用于和集群通讯的敕令行,经由过程kubectl能够布置和治理运用,检察种种资本,建立、删除和更新种种组件
yum install -y kubelet-1.16.2 kubeadm-1.16.2 kubectl-1.16.2

启动kubelet 并设置开机自动启动

[root@m1 ~]# systemctl enable kubelet && systemctl start kubelet

建立下载kubernetes镜像缓存剧本 ,并启动它下载

 vi image.sh 
#!/bin/bash
url=registry.cn-hangzhou.aliyuncs.com/google_containers
version=v1.16.2
images=(`kubeadm config images list --kubernetes-version=$version|awk -F '/' '{print $2}'`)
for imagename in ${images[@]} ; do
  docker pull $url/$imagename
  docker tag $url/$imagename k8s.gcr.io/$imagename
  docker rmi -f $url/$imagename
done

发明没有权限

[root@m1 ~]# ./image.sh
-bash: ./image.sh: Permission denied

给权限后从新实行剧本 

chmod 777 image.sh

./image.sh

 

完毕后检察一下docker 的镜像

[root@m1 ~]# docker images
REPOSITORY                           TAG                 IMAGE ID            CREATED             SIZE
k8s.gcr.io/kube-proxy                v1.16.2             8454cbe08dc9        2 weeks ago         86.1MB
k8s.gcr.io/kube-apiserver            v1.16.2             c2c9a0406787        2 weeks ago         217MB
k8s.gcr.io/kube-controller-manager   v1.16.2             6e4bffa46d70        2 weeks ago         163MB
k8s.gcr.io/kube-scheduler            v1.16.2             ebac1ae204a2        2 weeks ago         87.3MB
k8s.gcr.io/coredns                   1.3.1               eb516548c180        9 months ago        40.3MB
k8s.gcr.io/etcd                      3.3.10              2c4adeb21b4f        11 months ago       258MB
k8s.gcr.io/pause                     3.1                 da86e6ba6ca1        22 months ago       742kB

申明下载一般

 

,接下来我要将这个虚拟机备份一下, 未来之前做的那些事变都能够用复原的体式格局略过了

 

 

然后我删除了虚拟机k8s-m1,由于我要从新计划保留的位置

把适才导出的虚拟机导入

 

 

 再导入一次,为事变节点

 

 接下来把适才导入的两个虚拟机再次删除,我们要的只是他硬盘里的数据,  不然 product_uuid会反复,所以我们要多做几步操纵

 

 

 

 增加 新的虚拟机,挑选硬盘为适才导入时挑选的硬盘, 前面内存那边记得不要选动态内存,依样画葫芦 k8s-w1

 

这时候两个虚拟机的静态ip是争执的,我们启动第二台修正ip地点为192.168.1.201

vi /etc/sysconfig/network-scripts/ifcfg-eth0

hostname也修正成w1

hostnamectl set-hostname w1

修正好后reboot重启  顺便把k8s-m1也启动

删除C:\Users\hbb\.sshknown_hosts 后开两个治理员权限的ps 衔接上m1 和w1

 

接下来我们双方都修正hosts文件,到场 我们计划好的ip 的别号

vi /etc/hosts

 

检察mac 和uuid是不是争执

cat /sys/class/net/eth0/address
cat /sys/class/dmi/id/product_uuid

 

 都没有争执了

 接下来做主节点m1的设置,下面的操纵只须要在m1上实行

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

自动补全

[root@m1 ~]# echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
[root@m1 ~]# source .bash_profile

装置收集战略,

kubectl create -f https://docs.projectcalico.org/v3.9/manifests/calico.yaml

 

默许情况下  master上不能装置pod,由于主节点上打上了污点

假如要在master上装置pod,则要把污点去掉

检察污点

[root@m1 ~]# kubectl describe node m1|grep -i taints
Taints: node-role.kubernetes.io/master:NoSchedule

删除默许的污点

[root@m1 ~]#  kubectl taint nodes m1 node-role.kubernetes.io/master-
node/m1 untainted

打污点的语法有兴致能够本身去研讨,这里不再引见太多

接下来就是事变节点 w1了

在我刚把m1 kubeinit时产生了一个 敕令,能够复制去子节点上实行以到场 主节点

也能够手动建立 

kubeadm token create --print-join-command

 

 

复制去事变节点上实行就能够直接到场主节点

事变节点实行结果以下

 

 

 主节点检察node service pod compoent

[root@m1 ~]# kubectl get node
NAME   STATUS   ROLES    AGE   VERSION
m1     Ready    master   18m   v1.16.2
w1     Ready    <none>   11m   v1.16.2
[root@m1 ~]# kubectl get svc --all-namespaces
NAMESPACE     NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                  AGE
default       kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP                  18m
kube-system   kube-dns     ClusterIP   10.96.0.10   <none>        53/UDP,53/TCP,9153/TCP   18m
[root@m1 ~]# kubectl get pods --all-namespaces
NAMESPACE     NAME                                      READY   STATUS    RESTARTS   AGE
kube-system   calico-kube-controllers-dc6cb64cb-856pv   1/1     Running   0          15m
kube-system   calico-node-k259l                         1/1     Running   0          12m
kube-system   calico-node-z5wbs                         1/1     Running   0          15m
kube-system   coredns-5644d7b6d9-v8wjh                  1/1     Running   0          19m
kube-system   coredns-5644d7b6d9-z2zsw                  1/1     Running   0          19m
kube-system   etcd-m1                                   1/1     Running   0          18m
kube-system   kube-apiserver-m1                         1/1     Running   0          18m
kube-system   kube-controller-manager-m1                1/1     Running   0          18m
kube-system   kube-proxy-b882q                          1/1     Running   0          12m
kube-system   kube-proxy-vxfxj                          1/1     Running   0          19m
kube-system   kube-scheduler-m1                         1/1     Running   0          17m

 [root@m1 ~]# kubectl get cs -o json

 

接下来能够到场一些pod 测试 ,到场pod的体式格局有两种

运用yaml文件装置/卸载  -f背面接一个yaml文件,能够是收集途径

kubectl create -f kubernetes-dashboard.yaml 
kubectl delete-f kubernetes-dashboard.yaml 

 

一种是直接运用镜像,直接运用镜像比较少见

本人也还没有研讨,能够参考这个处所

http://docs.kubernetes.org.cn/618.html

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  移步手机端
hyper-v假造机上的centos多节点k8s集群实践

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
未定义标签

本文来源:搜奇网

本文地址:https://www.sou7.cn/282329.html

关注我们:微信搜索“搜奇网”添加我为好友

版权声明: 本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。请记住本站网址https://www.sou7.cn/搜奇网。

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>