Kubernetes学习笔记(一):Kubernetes-1.5.4版本安装与配置

——网络环境                                                                                 

    系统:CentOS-7.0 

    内核:3.10.0-514.el7.x86_64

    centos-master    192.168.100.110

    centos-minion    192.168.100.111

    centos-minion    192.168.100.112

——基础环境配置                                                                           

同步时间                                                                                                                              

# ntpdate cn.pool.ntp.org

关闭防火墙                                                                                                                           

# systemctl disable firewalld

# systemctl stop firewalld

关闭Selinux                                                                                                                         

# setenforce 0

修改主机名称                                                                                                                       

# hostnamectl set-hostname centos-master

# hostnamectl set-hostname centos-minion-1

# hostnamectl set-hostname centos-minion-2

添加主机解析                                                                                                                        

# cat >> /etc/hosts << EOF

192.168.100.110 centos-master

192.168.100.111 centos-minion-1

192.168.100.112 centos-minion-2

EOF

添加Kubernetes源                                                                                                          

# cat < EOF > /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=http://yum.kubernetes.io/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=1

repo_gpgcheck=1

gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg

       https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg

EOF

——ETCD集群搭建配置                                                                  


安装etcd服务                                                                                                                      

# yum -y install etcd

# cp /etc/etcd/etcd.conf /etc/etcd/etcd.conf.bak_$(date +%Y%m%d)

# vim /etc/etcd/etcd.conf

ETCD_NAME=etcd_node1  // 节点名称

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

ETCD_LISTEN_PEER_URLS="http://192.168.100.110:2380"

ETCD_LISTEN_CLIENT_URLS="http://192.168.100.110:2379,http://127.0.0.1:2379"  // 必须增加127.0.0.1否则启动会报错

ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.100.110:2380"

ETCD_INITIAL_CLUSTER="etcd_node1=http://192.168.100.110:2380,etcd_node2=http://192.168.100.111:2380"  // 集群IP地址

ETCD_INITIAL_CLUSTER_STATE="new"

ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"

ETCD_ADVERTISE_CLIENT_URLS="http://192.168.100.110:2379"

# systemctl enable etcd.service 

# systemctl start etcd.service && systemctl status etcd.service

验证etcd集群配置                                                                                                              

# etcdctl cluster-health

member 7e218077496bccf9 is healthy: got healthy result from http://localhost:2379

cluster is healthy //表示安装成功

——Kubernetes集群搭建配置                                                     


安装Kubernetes服务                                                                                                      

# yum install docker kubelet kubeadm kubectl kubernetes-cni -y

启动kubelet和docker服务                                                                                              

# systemctl enable docker && systemctl restart docker && systemctl status docker

# systemctl enable kubelet.service &&  systemctl restart kubelet.service && systemctl status kubelet.service 

初始化kubelet服务                                                                                                          

# kubeadm init \

--api-advertise-addresses=192.168.100.110 \

--use-kubernetes-version v1.5.4 \

--pod-network-cidr 10.244.0.0/16 \

--external-etcd-endpoints http://192.168.100.110:2379

[kubeadm] WARNING: kubeadm is in alpha, please do not use it for production clusters.

[preflight] Running pre-flight checks

[preflight] WARNING: kubelet service is not enabled, please run ‘systemctl enable kubelet.service‘

[preflight] Starting the kubelet service

[init] Using Kubernetes version: v1.5.4

[tokens] Generated token: "086fba.998d660409d17c93"

[certificates] Generated Certificate Authority key and certificate.

[certificates] Generated API Server key and certificate

[certificates] Generated Service Account signing keys

[certificates] Created keys and certificates in "/etc/kubernetes/pki"

[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"

[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"

[apiclient] Created API client, waiting for the control plane to become ready

[apiclient] All control plane components are healthy after 307.408362 seconds

[apiclient] Waiting for at least one node to register and become ready

[apiclient] First node is ready after 1.506007 seconds

[apiclient] Creating a test deployment

[apiclient] Test deployment succeeded

[token-discovery] Created the kube-discovery deployment, waiting for it to become ready

[token-discovery] kube-discovery is ready after 138.004510 seconds

[addons] Created essential addon: kube-proxy

[addons] Created essential addon: kube-dns

Your Kubernetes master has initialized successfully!

You should now deploy a pod network to the cluster.

Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:

    http://kubernetes.io/docs/admin/addons/

You can now join any number of machines by running the following on each node:

kubeadm join --token=086fba.998d660409d17c93 192.168.100.110

检查Pod状态                                                                                                                             

# kube-dns 状态一直处于ContainerCreating是因为没有创建 Pod Network

# kubectl get pods -n kube-system

NAMESPACE     NAME                                    READY     STATUS              RESTARTS   AGE
kube-system   dummy-2088944543-f98tb                  1/1       Running             0          4m
kube-system   kube-apiserver-centos-master            1/1       Running             0          2m
kube-system   kube-controller-manager-centos-master   1/1       Running             0          3m
kube-system   kube-discovery-1769846148-lzn11         1/1       Running             0          4m
kube-system   kube-dns-2924299975-thhq4               0/4       ContainerCreating   0          4m
kube-system   kube-proxy-1mktc                        1/1       Running             0          4m
kube-system   kube-scheduler-centos-master            1/1       Running             0          3m

安装flannel Pod网络                                                                                                                

# 如果虚拟机用了两个网卡,这里需要指定一个网卡组成虚拟网络,因此在flannel运行命令后面加了参数--iface=eth0

# 修改前: command: [ "/opt/bin/flanneld", "--ip-masq", "--kube-subnet-mgr" ] 

# 修改后内容: command: [ "/opt/bin/flanneld", "--ip-masq", "--kube-subnet-mgr", "--iface=eth0" ]

# wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

# kubectl create -n kube-system -f kube-flannel.yml  

# kubectl get pods -n kube-system

NAMESPACE     NAME                                    READY     STATUS    RESTARTS   AGE
kube-system   dummy-2088944543-52s9x                  1/1       Running   0          2m
kube-system   kube-apiserver-centos-master            1/1       Running   0          2m
kube-system   kube-controller-manager-centos-master   1/1       Running   0          2m
kube-system   kube-discovery-1769846148-r1z03         1/1       Running   0          2m
kube-system   kube-dns-2924299975-b6fb7               4/4       Running   0          2m
kube-system   kube-flannel-ds-xspmc                   2/2       Running   0          1m
kube-system   kube-proxy-kz96k                        1/1       Running   0          2m
kube-system   kube-scheduler-centos-master            1/1       Running   0          2m

将minion节点添加到集群                                                                                                           

# kubeadm join --token=086fba.998d660409d17c93 192.168.100.110

[kubeadm] WARNING: kubeadm is in alpha, please do not use it for production clusters.

[preflight] Running pre-flight checks

[preflight] Starting the kubelet service

[tokens] Validating provided token

[discovery] Created cluster info discovery client, requesting info from "http://192.168.100.110:9898/cluster-info/v1/?token-id=086fba"

[discovery] Cluster info object received, verifying signature using given token

[discovery] Cluster info signature and contents are valid, will use API endpoints [https://192.168.100.110:6443]

[bootstrap] Trying to connect to endpoint https://192.168.100.110:6443

[bootstrap] Detected server version: v1.5.4

[bootstrap] Successfully established connection with endpoint "https://192.168.100.110:6443"

[csr] Created API client to obtain unique certificate for this node, generating keys and certificate signing request

[csr] Received signed certificate from the API server:

Issuer: CN=kubernetes | Subject: CN=system:node:centos-minion-1 | CA: false

Not before: 2017-01-18 10:13:00 +0000 UTC Not After: 2018-01-18 10:13:00 +0000 UTC

[csr] Generating kubelet configuration

[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"

Node join complete:

* Certificate signing request sent to master and response

  received.

* Kubelet informed of new secure connection details.

Run ‘kubectl get nodes‘ on the master to see this machine join.

检查node<->pod<->pod<->node网络                                                                                

待补充......

安装Dashboard服务                                                                                                                

# wget https://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml

# kubectl create -f kubernetes-dashboard.yaml 

# 查看dashboard外网访问端口,默认NodePort模式

# kubectl describe svc kubernetes-dashboard -n kube-system

访问Dashboard服务                                                                                                                

时间: 2024-10-29 09:34:32

Kubernetes学习笔记(一):Kubernetes-1.5.4版本安装与配置的相关文章

[原创]java WEB学习笔记01:javaWeb之servlet的安装和配置

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

Docker学习笔记(一):在本地安装和配置Docker

由于公司里测试服务器时常会有变动,每次变动之后都需要在新的服务器上配置一遍环境,实在是麻烦.后来我突然想到了在网上看到的资料中说Docker能快速部署可移植的容器,所以我就试着用Docker搭建了Tomcat和Oracle的测试环境.所以本篇以实战为主,主要讲Docker的一些基本概念和常用的命令. Docker的实现原理 原本我想在这里先介绍一下Docker,但是似乎网上已经有大量的信息的,建议对Docker不是很了解的人先看一下百度百科_Docker词条的“原理”部分,所以这里就不再阐述.

Caffe学习笔记(一)——Windows 下caffe安装与配置

本文主要介绍:经过一番周折,在Windows7 64位系统下成功配置Caffe,下面总结一下基本的配置过程,以及配置过程中遇到的问题. 配置环境:Windows7 X64 + CUDA7.0 + VS2013 + Matlab2014a 1.安装CUDA 1.1. 版本选择 至于版本的选择,安装7.5.7.0和6.5版本都可以,安装包网上到处可见,分享一个自己安装的版本:http://pan.baidu.com/s/1i5AmAZb 1.2 安装过程 CUDA安装过程以及与VS关联过程参考: h

NFC学习笔记——三(在windows操作系统上安装libnfc)

本篇翻译文章: 这篇文章主要是说明如何在windows操作系统上安装.配置和使用libnfc. 一.基本信息 1.操作系统: Windows Vista Home Premium SP 2 2.硬件信息: System: Dell Inspiron 1720 Processor: Intel Core 2 Duo CPU T9300 @ 2.5GHz 2.5GHz System type: 32-bit Operating System 3.所需软件: 在windows操作系统上安装软件需要下列

MongoDB学习笔记一:MongoDB的下载和安装

趁着这几天比较空闲,准备学习一下MongoDB数据库,今天就简单的学习了一些MongoDB的下载和安装,并创建了存储MongoDB的数据仓库.将自己今天学习到的写成博客分享给大家. 一.MongoDB的下载和安装 MongoDB的下载地址为:http://www.mongodb.org/ 1.进入官网的首页后,在首页的右上方单击Downloads连接,如图所示: 2.在页面中可以看到目前最新的版本和以前发布过的版本,这里选择最新版本,windows 32位的进行下载,文件的格式为ZIP格式的,单

Hadoop学习笔记_8_实施Hadoop集群 --分布式安装Hadoop

实施Hadoop集群 --分布式安装Hadoop 说明: 以Ubuntu配置为例,其中与CentOS不同之处会给出详细说明 现有三台服务器:其IP与主机名对应关系为: 192.168.139.129 master #NameNode/JobTrackerr结点 192.168.139.132 slave01 #DataNode/TaskTracker结点 192.168.139.137 slave02 #DataNode/TaskTracker结点 一.配置ssh实现Hadoop节点间用户的无密

Kubernetes二进制方式v1.13.2生产环境的安装与配置(HTTPS+RBAC) ?

Kubernetes二进制方式v1.13.2生产环境的安装与配置(HTTPS+RBAC) 一 背景 由于众所周知的原因,在国内无法直接访问Google的服务.二进制包由于其下载方便.灵活定制而深受广大kubernetes使用者喜爱,成为企业部署生产环境比较流行的方式之一,Kubernetes v1.13.2是目前的最新版本.安装部署过程可能比较复杂.繁琐,因此在安装过程中尽可能将操作步骤脚本话.文中涉及到的脚本已经通过本人测试. 二 环境及架构图 2.1 软件环境 OS(最小化安装版): cat

Linux学习之CentOS--CentOS6.4下Mysql数据库的安装与配置【转】

如果要在Linux上做j2ee开发,首先得搭建好j2ee的开发环境,包括了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有详细讲解了Linux学习之CentOS(七)--CentOS下j2ee环境搭建),如果要开发web项目,我们当然可以安装一个myeclipse到Linux系统上去,这个安装方法和安装eclipse完全相同,就没有记录下来了,有了jdk.tomcat.eclipse我们就已经能进行我们的程序开发了,但是如果要做一个项目,哪怕是小的不能再小的项目都离不开数

kubernetes学习笔记

docker实现了更便捷的单机容器虚拟化的管理, docker的位置处于操作系统层与应用层之间; 相对传统虚拟化(KVM,XEN): docker可以更加灵活的去实现一些应用层功能, 同时对资源的利用率也更高 相对应用: docker可以把应用更操作系统(镜像)做更好的结合, 降低部署与维护的的成本 处于这样一个位置在单机使用docker进行业务部署是可以感觉到质的提升; 但是针对跨机器, 大规模, 需要对业务质量进行保证的时候, docker本身又有些不足, 而传统的运维自动化工具无论是在do