Введение в установку и настройку Centos7.0+ Kubernetes (k8s)

Kubernetes

предисловие

Учебные заметки Kubernetes, записывайте! 💻🚀

Подготовьте три компьютера с CentOS 7.0+ и измените имя хоста на Master, node-01, node-02:

узел айпи адрес
Master 10.211.55.7
node-01 10.211.55.8
node-02 10.211.55.9

Я создал здесь три новые виртуальные машины:

Настройте файл /etc/hosts для всех машин:

vi /etc/hosts

Сохраните и выйдите после добавления следующих трех строк.

10.211.55.7 Master
10.211.55.8 node-01
10.211.55.9 node-02

Примечание. Для следующих команд пользователям без полномочий root требуются права sudo для выполнения соответствующих команд с помощью sudo. Пользователь root удаляет sudo для выполнения.

отключить брандмауэр

1. Отключите брандмауэр: sudo systemctl stop firewalld.service

2. Отключить автозагрузку: sudo systemctl отключить firewalld.service

Просмотр состояния брандмауэра: firewall-cmd --state

Проверьте, запущена ли загрузка: systemctl is-enabled firewalld.service

Отключить СЕЛИНУКС

sudo setenforce 0
sudo vi /etc/selinux/config
#SELINUX修改为disabled
SELINUX=disabled

Отключить раздел подкачки

Команда Swap для выключения системы выглядит следующим образом:

swapoff -a

В то же время вам также необходимо изменить файл /etc/fstab и закомментировать автоматическое монтирование SWAP, чтобы предотвратить включение подкачки после перезапуска машины. Используйте команду:

vi /etc/fstab

Сохраните и выйдите после комментирования строки подкачки.

# /dev/mapper/centos-swap swap                    swap    defaults        0 0

Подтвердите, что своп закрыт, используйте команду:

free -m

Если вывод подкачки равен 0, это означает, что он был закрыт.

начать установку

yum -y install epel-release

Затем обновитесь до последней версии:

yum update

Начать установку: (все хосты)

yum install -y etcd kubernetes-master ntp flannel

Установлен etcd 3.3.11, flannel 0.7.1, версия kubernetes-master 1.5.2.

Идем дальше и устанавливаем узел:

yum install -y kubernetes-node ntp flannel docker

Проверка времени: (все хосты)

systemctl start ntpd
ntpdate ntp1.aliyun.com
hwclock -w

Настройка etcd-сервера

  • владелец: Отредактируйте файл etcd.conf:
vim /etc/etcd/etcd.conf

Изменено на следующее:

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
ETCD_NAME="master"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.211.55.7:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://10.211.55.7:2379,http://10.211.55.7:4001"
ETCD_INITIAL_CLUSTER="master=http://10.211.55.7:2380,node01=http://10.211.55.8:2380,node02=http://10.211.55.9:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

Проверьте, нужно ли изменить:

grep -v '^#' /etc/etcd/etcd.conf

Запустить службу etcd

systemctl start etcd

Проверить состояние кластера etcd

etcdctl cluster-health

Проверьте список членов кластера etcd, там только один

etcdctl  member  list

  • узел01: Отредактируйте файл etcd.conf:
vim /etc/etcd/etcd.conf

Изменено на следующее:

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
ETCD_NAME="node02"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.211.55.8:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://10.211.55.8:2379,http://10.211.55.8:4001"
ETCD_INITIAL_CLUSTER="master=http://10.211.55.7:2380,node01=http://10.211.55.8:2380,node02=http://10.211.55.9:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

Запустить службу etcd

systemctl start etcd

Проверить состояние кластера etcd

etcdctl cluster-health

Проверьте список членов кластера etcd

etcdctl  member  list
  • узел02:

Отредактируйте файл etcd.conf:

vim /etc/etcd/etcd.conf

Изменено на следующее:

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
ETCD_NAME="node02"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.211.55.9:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://10.211.55.9:2379,http://10.211.55.9:4001"
ETCD_INITIAL_CLUSTER="master=http://10.211.55.7:2380,node01=http://10.211.55.8:2380,node02=http://10.211.55.9:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

Запустить службу etcd

systemctl start etcd

Проверить состояние кластера etcd

etcdctl cluster-health

Проверьте список членов кластера etcd

etcdctl  member  list

Настроить главный сервер

1) Настройте файл конфигурации kube-apiserver

[root@Master ~]# grep -v '^#' /etc/kubernetes/config

KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://10.10.10.14:8080"

[root@Master ~]# grep -v '^#' /etc/kubernetes/apiserver

KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
KUBE_ETCD_SERVERS="--etcd-servers=http://10.10.10.14:2379"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
KUBE_ADMISSION_CONTROL="--admission-control=AlwaysAdmit"
KUBE_API_ARGS=""

2) Настройте файл конфигурации kube-controller-manager

[root@Master ~]# grep -v '^#' /etc/kubernetes/controller-manager

KUBE_CONTROLLER_MANAGER_ARGS=""

3) Настройте файл конфигурации kube-scheduler

[root@Master ~]# grep -v '^#' /etc/kubernetes/scheduler

KUBE_SCHEDULER_ARGS="--address=0.0.0.0"

4) Запустить службу

for i in  kube-apiserver kube-controller-manager kube-scheduler;do systemctl restart $i; systemctl enable $i;done

Настройте сервер узла node01

1) Конфигурация и т. д.

[root@Master ~]# etcdctl set /atomic.io/network/config '{"Network": "172.16.0.0/16"}'

{"Network": "172.16.0.0/16"}

2) Настройте сеть node1. В этом примере для настройки используется метод фланели. Другие методы можно найти на официальном сайте Kubernetes.

[root@node01 ~]# grep -v '^#' /etc/sysconfig/flanneld

FLANNEL_ETCD_ENDPOINTS="http://10.211.55.8:2379"
FLANNEL_ETCD_PREFIX="/atomic.io/network"
FLANNEL_OPTIONS=""

Просмотр информации о сети проверки

[root@Master ~]# etcdctl get /atomic.io/network/config

{ "Network": "172.16.0.0/16" }

[root@Master ~]# etcdctl ls /atomic.io/network/subnets

/atomic.io/network/subnets/172.16.69.0-24
/atomic.io/network/subnets/172.16.6.0-24

[root@Master ~]# etcdctl get /atomic.io/network/subnets/172.16.6.0-24

{"PublicIP":"10.211.55.8"}

[root@Master ~]# etcdctl get /atomic.io/network/subnets/172.16.69.0-24

{"PublicIP":"10.211.55.9"}

3) Настройте node1 kube-proxy

[root@node01 ~]# grep -v '^#' /etc/kubernetes/config

KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://10.10.10.14:8080"

[root@node01 ~]# grep -v '^#' /etc/kubernetes/proxy

KUBE_PROXY_ARGS="--bind=address=0.0.0.0"

4) Настройте кублет node1

[root@node01 ~]# grep -v '^#' /etc/kubernetes/kubelet

KUBELET_ADDRESS="--address=127.0.0.1"
KUBELET_HOSTNAME="--hostname-override=10.10.10.15"
KUBELET_API_SERVER="--api-servers=http://10.10.10.14:8080"
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"
KUBELET_ARGS=""

5) Запускаем службу node01

for i in flanneld kube-proxy kubelet docker;do systemctl restart $i;systemctl enable $i;systemctl status $i ;done

Настройте сервер узла node02

Конфигурация node2 в основном такая же, как у node1, за исключением следующего исключения.

[root@node2 ~]# vi /etc/kubernetes/kubelet

KUBELET_HOSTNAME="--hostname-override=10.211.55.9"

Просмотр узлов

[root@Master ~]# kubectl get nodes

NAME          STATUS    AGE
10.211.55.8   Ready     18h
10.211.55.9   Ready     13h

наконец

Сегодняшнее сообщение:"Есть какие-то дороги, поедешь - очень устанешь! Не поедешь - пожалеешь! ️️"

Приглашаем обратить внимание на личный публичный аккаунт WeChat:Персиково-сливовая примулаличный блог:leeyunt.top

桃李报春