Kubernetes单机安装部署

系统环境:

Ubuntu 16.04.2 LTS

软件环境:

Docker 1.12.6

Go 1.8.3

Etcd 3.1.8

Flannel 0.7.1

Kubernetes master 1.7.0-alpha

安装步骤:

1 安装Docker

1) apt-get update

2) apt-get upgrade

3) apt-get install docker.io

4) service docker restart

5) docker run hello-world

6) docker run -it ubuntu bash

2 安装Go

1) 下载Go语言压缩包

wget https://golang.org/dl/go1.8.3.linux-amd64.tar.gz

2) 解压压缩包

tar -C /usr/local -xzf go1.8.3.linux-amd64.tar.gz

3) 添加下列环境变量到/etc/profile(for a system-wide installation) or $HOME/.profile

export PATH=$PATH:/usr/local/go/bin

4) 编写hello.Go文件,填写下列内容,放到$HOME/go/src/hello文件夹中

package main
import "fmt"
func main() {
    fmt.Printf("hello, world\n")
}

5) 测试Go语言环境,$HOME/go/默认为/root/go/

go run ~/go/src/hello/hello.go

3 安装Etcd

1) 下载Etcd压缩包

wget https://github.com/coreos/etcd/releases/download/v3.1.8/etcd-v3.1.8-linux-amd64.tar.gz

2) 解压Etcd压缩包

tar -xzf etcd-v3.1.8-linux-amd64.tar.gz

3) 拷贝Etcd可执行程序

cd etcd-v3.1.8-linux-amd64

cp etcd etcdctl /usr/bin

4 安装Flannel

1) 下载Flannel压缩包

wget https://github.com/coreos/flannel/releases/download/v0.7.1/flannel-v0.7.1-linux-amd64.tar.gz

2) 解压Flannel压缩包

tar -xzf flannel-v0.7.1-linux-amd64.tar.gz

3) 拷贝Flannel可执行程序

cd flannel-v0.7.1-linux-amd64

cp flannelid mk-docker-opts.sh /usr/bin

5 安装K8S

1) 获取K8S Master版本(1.7.0-alpha)

git clone https://github.com/kubernetes/kubernetes.git

2) 编译K8S

cd kubernetes

make quick-release

编译完成后:

K8S Server文件:~/go/src/kubernetes/_output/release-stage/server/linux-amd64/kubernetes/server/bin

K8S Client文件: ~/go/src/kubernetes/_output/release-stage/client/linux-amd64/kubernetes/client/bin

3) 拷贝K8S Server和Client可执行文件

cd ~/go/src/kubernetes/_output/release-stage/server/linux-amd64/kubernetes/server/bin

cp * /usr/bin

cd ~/go/src/kubernetes/_output/release-stage/client/linux-amd64/kubernetes/client/bin

cp * /usr/bin

注: 下述操作中的10.229.43.237请替换为你安装K8S的主机的IP地址

6 启动和测试Etcd

K8S使用Etcd保存Master和Node节点的信息,所以启动K8S之前需要先启动Etcd

1) 启动Etcd

etcd -initial-advertise-peer-urls http://10.229.43.237:2380 -listen-peer-urls http://10.229.43.237:2380 -listen-client-urls http://10.229.43.237:2379,http://127.0.0.1:2379 -advertise-client-urls http://10.229.43.237:2379

2) 读写Etcd Key和Value

etcdctl set foo bar

etcdctl get foo

7 启动Flannel并关联Docker

1) 启动Flannel

flanneld

2) 设置Etcd配置Flannel

etcdctl set /coreos.com/network/config ‘{"Network":"172.17.0.0/16"}‘

etcdctl set /coreos.com/network/subnets/172.17.10.0-24 ‘{"PublicIP":"10.229.43.237"}‘

3) 设置Flannel关联Docker

mk-docker-opts.sh -i
source /run/flannel/subnet.env
rm /var/run/docker.pid
ifconfig docker0 ${FLANNEL_SUBNET}
service docker restart

8 启动K8S

1) 启动kube-apiserver

kube-apiserver --address=0.0.0.0  --insecure-port=8080 --service-cluster-ip-range=‘10.10.10.1/24‘ --log_dir=/usr/local/kubernete_test/logs/kube --kubelet_port=10250 --v=0 --logtostderr=false --etcd_servers=http://10.229.43.237:2379 --allow_privileged=false

2) 启动kube-controller-manager

kube-controller-manager  --v=0 --logtostderr=false --log_dir=/usr/local/kubernete_test/logs/kube --master=10.229.43.237:8080

3) 启动kube-scheduler

kube-controller-manager  --v=0 --logtostderr=false --kube-scheduler  --master=‘10.229.43.237:8080‘ --v=0  --log_dir=/usr/local/kubernete_test/logs/kube

4) 测试master节点是否正常启动

kubectl get componentstatuses

5) 启动kube-proxy

kube-proxy  --logtostderr=false --v=0 --master=http://10.229.43.237:8080

6) 启动kubelet

kubelet  --logtostderr=false --v=0 --allow-privileged=false  --log_dir=/usr/local/kubernete_test/logs/kube  --address=0.0.0.0  --port=10250  --hostname_override=10.229.43.237  --api_servers=http://10.229.43.237:8080

7) 在Node上设置集群Context

kubectl config set-cluster test-cluster --server=http://10.229.43.237:8080

kubectl config set-context test-cluster --cluster=test-cluster

kubectl config use-context test-cluster

8) 准备kubernetes/pause镜像

由于K8S Pod需要Pause镜像来启动Pause容器,所以需要准备kubernetes/pause镜像

docker pull docker.io/kubernetes/pause

docker tag f9d5de079539 gcr.io/google_containers/pause:2.0

这里相当于是把docker.io重命名为gcr.io,f9d5de079539为拉下来的镜像ID(docker images)

9) 确认K8S是否启动成功

kubectl get nodes

9 部署Nginx集群

1) 创建Nginx Pods

kubectl run nginx --image=nginx --port=80  --replicas=5

kubectl get pods

2) 创建nginx-service.yaml

apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  ports:
  - port: 80
    targetPort: 9090
  selector:
    name: nginx 

3) 根据Pods创建Service

kubectl create -f nginx-service.yaml

kubectl get services

到此K8S集群部署完成。

时间: 2024-11-08 15:13:31

Kubernetes单机安装部署的相关文章

kafka本地单机安装部署

kafka是一种高吞吐量的分布式发布订阅消息系统,这几天要上kafka,只在其中的一个节点使用,结合具体的项目实践在此将kafka的本地安装部署流程记录下来与各位同仁分享交流. 准备工作: 上述的文件除了jdk以外均放在/usr/local/kafka目录下. 1.安装jdk,kafka的使用要用到jdk 首先检查有无jdk:java -version cd /usr/local/hadoop(本例中我是将jdk的安装包放到hadoop文件夹下,各位可以依据自己情况) http://www.or

Mesos+Kubernetes集成安装部署

因为Docker本身没有提供集群管理能力,对于docker集群一台台的登陆操作不太现实,因此需要引进容器集群的管理工具,主流的有mesosphere的marathon.谷歌的Kubernetes.docker社区的swarm,目前成熟度最高的是Kubernetes.Kubernetes是Google开源的容器集群管理系统,其提供应用部署.维护. 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能如下: 使用Docker对应用程序包装(package).实例化(

centos7 kubernetes单机安装

单机版的kubernetes 适合初学者,对kuber有个很好的入门. 因为centos系统内置了安装源.我们可以直接安装 1.yum install -y etco kubernetes 2.whereis  etcd grep -v '^#' /etc/etcd/etcd.conf 修改  /etc/etcd/etcd.conf 都修改为:如图所示 4.启动kuber的各个服务: kube-apiserver kube-controller-manager kube-scheduler ku

elk单机安装部署

解压 tar xf elasticsearch-7.1.0-linux-x86_64.tar.gz -C /data/ 配置 [[email protected] ~]# vim /etc/security/limits.conf * soft nofile 65536 * hard nofile 65536 [[email protected] ~]# vim /etc/sysctl.conf vm.max_map_count=655360 [[email protected] ~]# vim

kubernetes 基础-安装部署etcd集群

HDSS7-200上: ~]# wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -O /usr/bin/cfssl ~]# wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -O /usr/bin/cfssl-json ~]# wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -O /usr/bin/cfssl-cert

kubernetes 集群的安装部署

本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 首先kubernetes得官方文档我自己看着很乱,信息很少,所以结合了很多博客搭建的 其次因为既然用到docker,当然离不开kubernetes管理,还有swarm,前者管理复杂,但功能齐全 这里仅仅是安装部署,还未使用,具体使用出现问题后续更新 前提条件 系统时centos7上 关闭防火墙 systemctl stop firewalld.service

Hadoop 2.2.0部署安装(笔记,单机安装)

SSH无密安装与配置 具体配置步骤: ◎ 在root根目录下创建.ssh目录 (必须root用户登录) cd /root & mkdir .ssh chmod 700 .ssh & cd .ssh ◎ 创建密码为空的 RSA 密钥对: ssh-keygen -t rsa -P "" ◎ 在提示的对称密钥名称中输入 id_rsa将公钥添加至 authorized_keys 中: cat id_rsa.pub >> authorized_keys chmod 6

Kubernetes安装部署

k8s安装部署方法 手动部署:部署k8s自身,让k8s相关组件都运行为系统守护进程 GitHub上托管的Ansible playbook kubeadm安装部署:所有组件能运行为容器全部运行为容器,只有kubelet运行在主机上,仓库托管在gcr之上 模拟环境,一个节点实现 使用kubeadm安装部署kubernetes集群 部署环境: 前提: 1.各节点时间同步: 2.各节点主机名称解析:dns OR hosts: 3.各节点iptables及firewalld服务被disable: kube

kubernetes系列03—kubeadm安装部署K8S集群

1.kubernetes安装介绍 1.1 K8S架构图 1.2 K8S搭建安装示意图 1.3 安装kubernetes方法 1.3.1 方法1:使用kubeadm 安装kubernetes(本文演示的就是此方法) 优点:你只要安装kubeadm即可:kubeadm会帮你自动部署安装K8S集群:如:初始化K8S集群.配置各个插件的证书认证.部署集群网络等.安装简易. 缺点:不是自己一步一步安装,可能对K8S的理解不会那么深:并且有那一部分有问题,自己不好修正. 1.3.2 方法2:二进制安装部署k