Kubernetes 1.6学习之简单集群安装与配置

1 环境准备

  • CentOS Linux release 7.3.1611 (Core) 
  • etcd-v3.2.6
  • docker-ce-17.03.2.ce
  • kubernetes-v1.6.9

2 Kubernetes下载

https://github.com/kubernetes/kubernetes/releases/download/v1.6.9/kubernetes.tar.gz

3 安装配置

3.1 部署架构

  • 192.168.108.128 节点1(Master)
  • 192.168.108.129 节点2(Node)
  • 192.168.108.130 节点3(Node)

3.2 先决条件

3.3 开始安装

这里用二进制文件安装,下载的kubernetes.tar.gz并不是可执行文件,而是一系列的脚本。

解压已下载的kubernetes.tar.gz

$ tar zxvf kubernetes.tar.gz -C /opt/
$ cd /opt/kubernetes

执行get-kube-binaries.sh下载server和client的可执行文件

$ ./cluster/get-kube-binaries.sh 

Kubernetes release: v1.6.9
Server: linux/amd64  (to override, set KUBERNETES_SERVER_ARCH)
Client: linux/amd64  (autodetected)

Will download kubernetes-server-linux-amd64.tar.gz from https://storage.googleapis.com/kubernetes-release/release/v1.6.9
Will download and extract kubernetes-client-linux-amd64.tar.gz from https://storage.googleapis.com/kubernetes-release/release/v1.6.9
Is this ok? [Y]/n
y
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  347M  100  347M    0     0  6110k      0  0:00:58  0:00:58 --:--:-- 10.6M

md5sum(kubernetes-server-linux-amd64.tar.gz)=decfd705eb0f32205d9016a41f2262b6
sha1sum(kubernetes-server-linux-amd64.tar.gz)=85f88c723881a092da67230936879909cb7882ac

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 29.0M  100 29.0M    0     0  1910k      0  0:00:15  0:00:15 --:--:-- 2919k

md5sum(kubernetes-client-linux-amd64.tar.gz)=ff28d0f1f3384d7594f2a71d2daa89f3
sha1sum(kubernetes-client-linux-amd64.tar.gz)=b941a95770d5f4b5c6784d1918a766480f600930

Extracting /opt/kubernetes/client/kubernetes-client-linux-amd64.tar.gz into /opt/kubernetes/platforms/linux/amd64
Add '/opt/kubernetes/client/bin' to your PATH to use newly-installed binaries.

执行该shell会自动下载kube的server和client可执行文件,其中客户端文件会自动解压到kubernetes目录下的client文件夹下,只需将bin添加到PATH下就可以了,这里也可以不任何处理,因为server的可执行包里也包含了客户端命令行工具。服务端可执行文件下载到了server文件夹,没有自动解压,后面会新创建/opt/kube目录, 然后解压到当前目录。

$ cp -au /opt/kubernetes/server/kubernetes-server-linux-amd64.tar.gz /opt/kube
$ cd  /opt/kube
$ tar xzvf /kubernetes-server-linux-amd64.tar.gz
[root@bogon kube]# ll kubernetes/server/bin
总用量 1624384
-rwxr-x--- 1 root root 119891993 8月  24 01:20 cloud-controller-manager
-rwxr-x--- 1 root root 191034128 8月  24 01:20 hyperkube
-rwxr-x--- 1 root root  69883109 8月  24 01:20 kubeadm
-rwxr-x--- 1 root root  55257883 8月  24 01:20 kube-aggregator
-rw-r----- 1 root root        33 8月  24 01:20 kube-aggregator.docker_tag
-rw-r----- 1 root root  56611328 8月  24 01:20 kube-aggregator.tar
-rwxr-x--- 1 root root 149557444 8月  24 01:20 kube-apiserver
-rw-r----- 1 root root        33 8月  24 01:20 kube-apiserver.docker_tag
-rw-r----- 1 root root 150910976 8月  24 01:20 kube-apiserver.tar
-rwxr-x--- 1 root root 131818104 8月  24 01:20 kube-controller-manager
-rw-r----- 1 root root        33 8月  24 01:20 kube-controller-manager.docker_tag
-rw-r----- 1 root root 133171712 8月  24 01:20 kube-controller-manager.tar
-rwxr-x--- 1 root root  70704763 8月  24 01:20 kubectl
-rwxr-x--- 1 root root  68136904 8月  24 01:20 kubefed
-rwxr-x--- 1 root root 138853888 8月  24 01:20 kubelet
-rwxr-x--- 1 root root  64015718 8月  24 01:20 kube-proxy
-rw-r----- 1 root root        33 8月  24 01:20 kube-proxy.docker_tag
-rw-r----- 1 root root 110821888 8月  24 01:20 kube-proxy.tar
-rwxr-x--- 1 root root  75646372 8月  24 01:20 kube-scheduler
-rw-r----- 1 root root        33 8月  24 01:20 kube-scheduler.docker_tag
-rw-r----- 1 root root  76999680 8月  24 01:20 kube-scheduler.tar

3.4 配置和启动服务

构建kubernetes集群,首先需要在Master节点上启动kube-apiserver、kube-controller-manager、kube-scheduler服务。然后在每个Node上启动kubelet、kube-proxy服务。

3.5 Master节点服务配置

编辑kube-apiserver.service

vi /usr/lib/systemd/system/kube-apiserver.service

[Unit]
Description=Kube-apiserver Service
After=network.target

[Service]
Type=notify
ExecStart=/opt/kube/kubernetes/server/bin/kube-apiserver \
            --admission-control=NamespaceAutoProvision,LimitRanger,SecurityContextDeny \
            --apiserver-count=1 \
            --cors-allowed-origins=.* \
            --enable-garbage-collector=false \
            --etcd-servers=http://192.168.108.128:2379 \
            --insecure-bind-address=0.0.0.0 \
            --insecure-port=8080 \
            --log-dir=/opt/kube/log/kube-apiserver \
            --logtostderr=false \
            --service-cluster-ip-range=192.168.108.0/24 \
            --v=5 \

Restart=always
LimitNOFILE=65536

[Install]
WantedBy=default.target

编辑kube-controller-manager.service:

$ vi /usr/lib/systemd/system/kube-controller-manager.service

[Unit]
Description=Kube-controller-manager Service
After=network.target

[Service]
Type=simple
ExecStart=/opt/kube/kubernetes/server/bin/kube-controller-manager \
          --enable-garbage-collector=false \
          --logtostderr=false \
          --log-dir=/opt/kube/log/kube-controller-manager \
          --pod-eviction-timeout=5m0s \
          --master=http://0.0.0.0:8080 \
          --node-monitor-grace-period=40s \
          --terminated-pod-gc-threshold=12500 \
          --leader-elect=true \
          --v=5 \

Restart=always
LimitNOFILE=65536

[Install]
WantedBy=default.target

编辑kube-scheduler.service:

$ vi /usr/lib/systemd/system/kube-scheduler.service

[Unit]
Description=Kube-scheduler Service
After=network.target

[Service]
Type=simple
ExecStart=/opt/kube/kubernetes/server/bin/kube-scheduler \
            --log-dir=/opt/kube/log/kube-scheduler \
            --logtostderr=false \
            --master=http://0.0.0.0:8080 \
            --leader-elect=true \
            --v=5 \

Restart=always
LimitNOFILE=65536

[Install]
WantedBy=default.target

配置完成后,执行systemctl start命令按顺序启动这3个服务。

systemctl --system daemon-reload
systemctl start kube-apiserver.service
systemctl start kube-controller-manager.service
systemctl start kube-scheduler.service

查看服务启动信息:

systemctl status kube-apiserver.service -l
systemctl status kube-controller-manager.service -l
systemctl status kube-scheduler.service -l

3.6 Node服务配置

192.168.108.129节点

编辑kubelet.service:

[Unit]
Description=Kubelet Service
After=network.target

[Service]
Type=simple
ExecStart=/opt/kube/kubernetes/server/bin/kubelet \
            --api-servers=http://192.168.108.128:8080 \
            --hostname-override=Node-2 \
            --image-gc-high-threshold=80 \
            --image-gc-low-threshold=50 \
            --log-dir=/opt/kube/log/kubelet \
            --logtostderr=false \
            --pod-infra-container-image=docker.cloudin.com/google_containers/pause-amd64:3.0 \
            --system-reserved cpu=2000m,memory=1G \
            --v=5 \

Restart=always
LimitNOFILE=65536

[Install]
WantedBy=default.target

编辑kube-proxy.service:

$ vi /usr/lib/systemd/system/kube-proxy.service

[Unit]
Description=Kube-proxy Service
After=network.target

[Service]
Type=simple
ExecStart=/opt/kube/kubernetes/server/bin/kube-proxy  \
            --log-dir=/opt/kube/log/kube-proxy \
            --logtostderr=false \
            --master=http://192.168.108.128:8080 \
            --v=5 \

Restart=always
LimitNOFILE=65536

[Install]
WantedBy=default.target

192.168.108.130
编辑kubelet.service:

$ vi /usr/lib/systemd/system/kubelet.service

[Unit]
Description=Kubelet Service
After=network.target

[Service]
Type=simple
ExecStart=/opt/kube/kubernetes/server/bin/kubelet \
            --api-servers=http://192.168.108.128:8080 \
            --hostname-override=Node-3 \
            --image-gc-high-threshold=80 \
            --image-gc-low-threshold=50 \
            --log-dir=/opt/kube/log/kubelet \
            --logtostderr=false \
            --pod-infra-container-image=docker.cloudin.com/google_containers/pause-amd64:3.0 \
            --system-reserved cpu=2000m,memory=1G \
            --v=5 \

Restart=always
LimitNOFILE=65536

[Install]
WantedBy=default.target

编辑kube-proxy.service:

$ vi /usr/lib/systemd/system/kube-proxy.service

[Unit]
Description=Kube-proxy Service
After=network.target

[Service]
Type=simple
ExecStart=/opt/kube/kubernetes/server/bin/kube-proxy  \
            --log-dir=/opt/kube/log/kube-proxy \
            --logtostderr=false \
            --master=http://192.168.108.128:8080 \
            --v=5 \

Restart=always
LimitNOFILE=65536

[Install]
WantedBy=default.target

配置完成后,执行systemctl start命令启动这2个服务:

systemctl --system daemon-reload

systemctl start kubelet.service
systemctl start kube-proxy.service

查看服务启动信息:

systemctl status kubelet.service -l
systemctl status kube-proxy.service -l

3.7 客户端命令

$ cd  /opt/kube/kubernetes/server

查看集群节点:

$ bin/kubectl get nodes

删除服务:

$ bin/kubectl delete node $NODENAME

查看kubernets相关接口:

http://192.168.108.128:8080/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值