搭建Kubernetes集群搭建跳坑

来源:互联网 发布:node buffer 编辑:程序博客网 时间:2024/06/16 02:04

Kubernetes 集群搭建主要是分三部

1虚拟机集群搭建

我采用virtualbox centos7搭建, 由于主机是一个win10, 所以所有的搭建都将在虚拟机中进行.
虚拟网络搭建采用NAT地址转换+Host-Only ,可以参考前面的文章 http://blog.csdn.net/billwang_guoyun/article/details/78255583

搭建好后的结构如下:


ip机器名 系统192.168.56.100master centos7192.168.56.102million2 centos7192.168.56.103million3 centos7192.168.56.104million4 centos7192.168.56.105million5 centos7192.168.56.106Registry ubuntu

2 kubernetes 安装

wget http://mirrors.aliyun.com/repo/Centos-7.repo wget http://mirrors.aliyun.com/repo/epel-7.repo  
[root@master ~] yum -y install kubernetes etcd
[root@master ~]# cd /etc/kubernetes/
[root@master kubernetes]# ls
apiserver  config  controller-manager  kubelet  proxy  scheduler


修改master apiserver 文件
[root@master kubernetes]# cat apiserver|grep -v "^#"
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
KUBE_API_PORT="--port=8080"
KUBE_ETCD_SERVERS="--etcd-servers=http://127.0.0.1:2379"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
KUBE_API_ARGS=""
[root@master kubernetes]# cat config|grep -v "^#"
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://192.168.56.100:8080"

修改master  etcd配置文件
  ETCD_NAME=default
  ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
  ETCD_LISTEN_CLIENT_URLS="http://127.0.0.1:2379"
  ETCD_ADVERTISE_CLIENT_URLS="127.0.0.1:2379"
master 启动kubernetes 和 etcd 服务
systemctl  start etcd.service
systemctl  start kube-apiserver.service
systemctl  start kube-controller-manager.service
systemctl start kube-scheduler.service

million节点配置:
同上安装kubernetes
然后启动
systemctl  start kubectl.service
systemctl start kube-proxy.service

现在回到主机查看主机情况:
[root@master kubernetes]# kubectl get nodes
NAME             STATUS    AGE
192.168.56.102   Ready     1h
192.168.56.103   Ready     1h
192.168.56.104   Ready     1h
192.168.56.105   Ready     1h
[root@master kubernetes]#
小结:这里主要遇到下面几个问题
1 注意配置etcd的时候配置127.0.0.1, 不然会报报错
2 当etcd数据想彻底删除然后重新开生成的时候可以rm -rf  /var/lib/etcd/default.etcd/member/*, 我不知道为什么我的etcd数据坏了不能访问了, 然后就删除后重加数据就好了.
3 我开始其实是想建一个混合集群的(包含ubuntu,freebsd,solaris,centos), 但是发现比较麻烦, 后来就放弃了, 只做了centos

3 使用kubernetes

创建一个pod:
apiVersion: v1
kind: Pod
metadata:                           #元数据信息
  name: nginx                       #kubectl get  pods 和 登陆容器显示的名字
  labels:                           #标签
    purpose: nginx1                 #标签,可以作为查询条件 kubectl get pods -l purpose=nginx1
spec: #规格
  containers:                       #容器
  - name: container-nginx           #容器名称
    image: docker.io/nginx          #使用的镜像
    env:                            #设置env,登陆到容器中查看环境变量, DEME_GREETING 的值是 "hello from the enviroment"
    - name: "test"
      value: "hello from the environment"
    ports:
    - containerPort: 80
      protocol: TCP
    resources:
      requests:
        memory: "100Mi"
        cpu: "250m"
      limits:
        memory: "200Mi"
        cpu: "1"
[root@master ~]# kubectl create -f pod.yaml
[root@master ~]# kubectl get pods
NAME      READY     STATUS    RESTARTS   AGE
nginx     1/1       Running   0          56m

这里我遇到一个问题, 当kubernet 从docker.io去pull的时候需要docker登陆,想去docker.com注册一个账号:
然后 在每台million上执行 docker login







原创粉丝点击