Home  >  Article  >  Operation and Maintenance  >  k8s installation and deployment steps

k8s installation and deployment steps

Guanhui
GuanhuiOriginal
2020-06-09 09:48:1315482browse

k8s installation and deployment steps

k8s installation and deployment steps

Preparation environment: three centos7 servers

192.168.6.129 k8s-master (master)

192.168.6.130 k8s-node-1 (node)

192.168.6.131 k8s-node-2 (node)

kubernetes (k8s) installation methods

Five methods:

  • kubernetes binary installation (the most tedious configuration, no less than installing openstack)

  • kubeadm installation (automated installation tool launched by Google, network requirements apply)

  • minikube installation (only used to experience k8s)

  • yum installation (the simplest, the version is relatively low====This method is recommended for learning)

  • go compile and install (the most difficult)

We use yum to install, and learning how to use k8s is the key.

1. Modify the host and host resolution

#Please perform the following operations on the three machines 129-130-131

vim /etc/ hosts:

192.168.6.129 k8s-master
192.168.6.130 k8s-node-1
192.168.6.131 k8s-node-2

Modify the host name:

hostnamectl set-hostname k8s-master
hostnamectl set-hostname k8s-node-1
hostnamectl set-hostname k8s-node-2

2: Install docker version 1.12. The 1.13 that comes with the system has a small bug and needs to be modified, otherwise the subsequent container network communication will be blocked

[root@k8s-master ~]# yum provides docker
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
2:docker-1.13.1-102.git7f2769b.el7.centos.x86_64 : Automates deployment of
: containerized applicat
Repo : extras
2:docker-1.13.1-103.git7f2769b.el7.centos.x86_64 : Automates deployment of
: containerized applications
Repo : extras
[root@k8s-master ~]#

Go to the official website to find version 1.12 docker

http://vault.centos.org/7.4.1708/extras/x86_64/Packages/

Need to install CentOS-Base.repo source in advance

All three machines need to download these three docker packages:

##http: //vault.centos.org/7.4.1708/extras/x86_64/Packages/docker-1.12.6-71.git3e8e77d.el7.centos.x86_64.rpm

http://vault.centos.org/7.4.1708/extras/x86_64/Packages/docker-client-1.12.6-71.git3e8e77d.el7.centos.x86_64.rpm

http://vault.centos.org/7.4.1708/extras/x86_64/Packages/docker-common-1.12.6-71.git3e8e77d.el7.centos.x86_64.rpm

[root@k8s-master ~]# ls
docker-1.12.6-71.git3e8e77d.el7.centos.x86_64.rpm
docker-client-1.12.6-71.git3e8e77d.el7.centos.x86_64.rpm
docker-common-1.12.6-71.git3e8e77d.el7.centos.x86_64.rpm
[root@k8s-master ~]# scp * 192.168.6.130:~
root@192.168.6.130's password:
docker-1.12.6-71.git3e8e77d.el7.centos.x86_64.rpm 100% 15MB 30.7MB/s 00:00
docker-client-1.12.6-71.git3e8e77d.el7.centos.x86_64.rpm 100% 3451KB 29.6MB/s 00:00
docker-common-1.12.6-71.git3e8e77d.el7.centos.x86_64.rpm 100% 83KB 6.9MB/s 00:00
[root@k8s-master ~]# scp * 192.168.6.131:~
root@192.168.6.131's password:
docker-1.12.6-71.git3e8e77d.el7.centos.x86_64.rpm 100% 15MB 24.2MB/s 00:00
docker-client-1.12.6-71.git3e8e77d.el7.centos.x86_64.rpm 100% 3451KB 23.3MB/s 00:00
docker-common-1.12.6-71.git3e8e77d.el7.centos.x86_64.rpm 100% 83KB 5.8MB/s 00:00
[root@k8s-master ~]#

Uninstall docker that has been installed on the system

Since the author has previously installed the docker-ce version, it needs to be completely uninstalled (it is recommended that you use a new machine to install)

[root@k8s-node-1 ~]# rpm -qa |grep docker
docker-ce-19.03.3-3.el7.x86_64
docker-ce-cli-19.03.3-3.el7.x86_64
[root@k8s-node-1 ~]# rpm -e docker-ce-19.03.3-3.el7.x86_64
[root@k8s-node-1 ~]# rpm -e docker-ce-cli-19.03.3-3.el7.x86_642
[root@k8s-node-1 ~]# rm -rf /var/lib/docker/* 清空之前docker产生的所有文件。
[root@k8s-node-1 ~]# rm -rf /etc/docker/*

3. Install docker 1.12 on all three machines (must be installed in the following order, otherwise an error may be reported)

yum localinstall docker-common-1.12.6-71.git3e8e77d.el7.centos.x86_64.rpm -y
yum localinstall docker-client-1.12.6-71.git3e8e77d.el7.centos.x86_64.rpm -y
yum localinstall docker-1.12.6-71.git3e8e77d.el7.centos.x86_64.rpm -y

4. Verify whether docker is installed successfully

[root@k8s-master ~]# docker -v
Docker version 1.12.6, build 3e8e77d/1.12.6

5. The master node installs etcd (k8s database kv type storage) natively supports clustering

[root@k8s-master ~]# yum install etcd.x86_64 -y
[root@k8s-master ~]# vim /etc/etcd/etcd.conf
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.6.129:2379"
#启动
[root@k8s-master ~]# systemctl start etcd.service
[root@k8s-master ~]# systemctl enable etcd.service
#测试
#set 设置一队键值 数据存储
[root@k8s-master ~]# etcdctl set testdir/testkey0 xujin
Xujin
#get获取
[root@k8s-master ~]# etcdctl get testdir/testkey0
xujin
[root@k8s-master ~]#
#检测集群状态
[root@k8s-master ~]# etcdctl -C http://192.168.6.129:2379 cluster-health
member 8e9e05c52164694d is healthy: got healthy result from http://192.168.6.129:2379
cluster is healthy
[root@k8s-master ~]#

6. The master node installs kubernetes

[root@k8s-master ~]# yum install kubernetes-master.x86_64 -y
#修改配置文件如下
[root@k8s-master ~]# vim /etc/kubernetes/apiserver
# The address on the local server to listen to.
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
# The port on the local server to listen on.
KUBE_API_PORT="--port=8080"
# Port minions listen on
KUBELET_PORT="--kubelet-port=10250"
# Comma separated list of nodes in the etcd cluster
KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.6.129:2379"
# default admission control policies
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,Securi
tyContextDeny,ResourceQuota"
#修改config文件
[root@k8s-master ~]# vim /etc/kubernetes/config
KUBE_MASTER="--master=http://192.168.6.129:8080"

7. Start k8s

# 启动kube-apiserver
#这个服务用来:接受并响应用户的请求
[root@k8s-master ~]# systemctl enable kube-apiserver.service
[root@k8s-master ~]# systemctl start kube-apiserver.service
#启动 kube-controller-manager
#控制管理器的概念,保证容器存活
#每隔一段时间去扫描容器状态,看有没有死了。
#容器死了,会调度apiserver再起一个新的容器
#保证容器的个数,比如我们设定起三个nginx容器,多了就会杀掉,少了就会起
[root@k8s-master ~]# systemctl enable kube-controller-manager.service
[root@k8s-master ~]# systemctl start kube-controller-manager.service
#启动kube-scheduler
#调度器,选择启动容器的node节点,通俗点就是容器在哪一个节点服务器上面创建
[root@k8s-master ~]# systemctl enable kube-scheduler.service
[root@k8s-master ~]# systemctl start kube-scheduler.service

Now the master 129 k8s is installed.

Recommended tutorial: "

PHP"

The above is the detailed content of k8s installation and deployment steps. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn