Я недавно осваиваю k8s, но установка k8s слишком хлопотна и занимает много времени.Поговорим о шагах установки. Ниже приведена конфигурация моей машины.На самом деле можно использовать и 2 ядра и 4G,но так как я хочу изучить kubeSphere требования к конфигурации высокие.Я тоже потратил на это много времени.Я буду записывать процесс обучения. Надеюсь, ты посмотришь, поставь лайк, кодировать слова непросто, чем больше смотришь, тем сильнее ты становишься.
Шаг 1. Измените имя хоста (необязательно)
Если во время установки и использования k8s возникает следующая ошибка, вам необходимо изменить имя хоста:
name: Invalid value: "k8s_master": a DNS-1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for
validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')
Если имя хоста неверно, выполните следующую команду, чтобы изменить имя хоста.
# 修改 hostname
hostnamectl set-hostname your-new-host-name
# 查看修改结果
hostnamectl status
# 设置 hostname 解析
echo "127.0.0.1 $(hostname)" >> /etc/hosts
Шаг 2 - Установите необходимое программное обеспечение
использовать корень каквсе узлыВыполните следующий код для установки программного обеспечения:
- docker
- nfs-utils
- kubectl / kubeadm / kubelet
# 在 master 节点和 worker 节点都要执行
curl -sSL https://kuboard.cn/install-script/v1.15.4/install-kubelet.sh | sh
Контент, специфичный для сценария =>install-kubelet.sh
Шаг 3. Установите кластер k8s с одним главным узлом.
Меры предосторожности:
- Выполнить на машине master-k8s от имени root
- При инициализации главного узла, если вы хотите повторно инициализировать главный узел из-за ошибок конфигурации на некоторых промежуточных шагах, выполните
kubeadm reset
действовать- Сегмент сети, используемый POD_SUBNET, не может пересекаться с сегментом сети, в котором расположен главный узел/рабочий узел. Значение этого поля является значением CIDR. Если вы не знакомы с концепцией CIDR, не изменяйте значение этого поля. 10.100.0.1/20
Выполните следующие команды только на узле master-k8s.
# 替换 x.x.x.x 为 master-k8s 节点实际 IP(请使用内网 IP)
# export 命令只在当前 shell 会话中有效,开启新的 shell 窗口后,如果要继续安装过程,请重新执行此处的 export 命令
export MASTER_IP=172.18.24.217
# 替换 apiserver.demo 为 您想要的 dnsName (不建议使用 master 的 hostname 作为 APISERVER_NAME)
export APISERVER_NAME=apiserver.demo
# Kubernetes 容器组所在的网段,该网段安装完成后,由 kubernetes 创建,事先并不存在于您的物理网络中
export POD_SUBNET=10.100.0.1/20
echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.15.4/init-master.sh | sh
Контент, специфичный для сценария =>init-master.sh
Проверьте результат инициализации мастера
# 执行如下命令,等待 3-10 分钟,直到所有的容器组处于 Running 状态
watch kubectl get pod -n kube-system -o wide
# 查看 master 节点初始化结果
kubectl get nodes -o wide
Шаг 4 — Инициализируйте рабочие узлы
Выполните следующую команду на узле master-k8s
# 只在 master 节点执行
kubeadm token create --print-join-command
# 查看 master 节点初始化结果
kubectl get nodes -o wide
доступныйkubeadm join
Команды и параметры, как показано на рисунке
kubeadm join
Команды и параметры, как показано на рисунке нижеВ этот момент перейдите к узлу master-k8s, чтобы выполнитьkubectl get nodes -o wide
Вы можете видеть, что новый узел присоединился
Шаг 5 - Установите helm (подготовка kubeSphere)
Выполните следующую команду
wget https://get.helm.sh/helm-v2.16.0-linux-amd64.tar.gz
tar zxvf helm-v2.16.0-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/
helm version
воплощать в жизньhelm version
Вы видите, что клиент установлен, но сервер не установлен.
rbac-config.yaml
документ
vi rbac-config.yaml
Введите следующее:
apiVersion: v1
kind: ServiceAccount
metadata:
name: tiller
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: tiller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
выполнить после сохраненияkubectl create -f rbac-config.yaml
# 以下命令二选一
# google源
helm init --service-account tiller --upgrade -i gcr.io/kubernetes-helm/tiller:v2.16.0
# 阿里源
helm init --service-account tiller --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.16.0 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
# 参数--stable-repo-url用于拉取charts所在源的位置,如果不设置则默认访问官方charts
# 查看tiller是否安装成功
kubectl get pod -n kube-system -l app=helm
выполнить сноваhelm version
Вы можете видеть, что и клиент, и служба установлены
Шаг 6. Официальное развертывание KubeSphere
Требования к версии:
Рамка Версия Kubernetes >=1.13.0 && <=1.16.0 GitVersion >v1.13.0 Helm >= 2.10.0
Требования к машине:
Общий доступный объем памяти рабочих узлов кластера составляет не менее 10 ГБ, рекомендуется 20 ГБ.
Если ваша среда Kubernetes соответствует вышеуказанным требованиям, вы можете перейти к следующим шагам.
- на мастер-k8sУзел установки kubeSphere
# 在Kubernetes 集群中创建名为 kubesphere-system 和 kubesphere-monitoring-system 的 namespace。
cat <<EOF | kubectl create -f -
---
apiVersion: v1
kind: Namespace
metadata:
name: kubesphere-system
---
apiVersion: v1
kind: Namespace
metadata:
name: kubesphere-monitoring-system
EOF
- Создайте секрет для сертификата ЦС кластера Kubernetes.
Примечание. Создайте в соответствии с текущими путями сертификатов ca.crt и ca.key кластера (путь сертификата для Kubeadm для создания кластера обычно /etc/kubernetes/pki)
kubectl -n kubesphere-system create secret generic kubesphere-ca \
--from-file=ca.crt=/etc/kubernetes/pki/ca.crt \
--from-file=ca.key=/etc/kubernetes/pki/ca.key
- Создайте секрет сертификата для кластера etcd.
Примечание. Создается в соответствии с фактическим местоположением сертификата etcd кластера;
- Если etcd настроен с использованием сертификата, см. следующее создание (следующие команды применимы к среде кластера Kubernetes, созданной Kubeadm):
kubectl -n kubesphere-monitoring-system create secret generic kube-etcd-client-certs \
--from-file=etcd-client-ca.crt=/etc/kubernetes/pki/etcd/ca.crt \
--from-file=etcd-client.crt=/etc/kubernetes/pki/etcd/healthcheck-client.crt \
--from-file=etcd-client.key=/etc/kubernetes/pki/etcd/healthcheck-client.key
- Если в etcd не настроен сертификат, создайте пустой секрет:
kubectl -n kubesphere-monitoring-system create secret generic kube-etcd-client-certs
- Клонируйте репозиторий kubesphere-installer локально.
yum install git
git clone https://github.com/kubesphere/ks-installer.git
- Войдите в ks-installer и разверните KubeSphere в кластере Kubernetes.
cd deploy
# 根据参数说明列表,编辑 kubesphere-installer.yaml 中 ks-config.yaml 为当前集群参数信息(若 etcd 无证书,设置 etcd_tls_enable: False)
vim kubesphere-installer.yaml
kubectl apply -f kubesphere-installer.yaml
Исправлятьkube_apiserver_host
а такжеetcd_endpoint_ips
Интранет IP машины
- Просмотр информации журнала развертывания
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l job-name=kubesphere-installer -o jsonpath='{.items[0].metadata.name}') -f
- Успешная установка После успешной установки выполните следующую команду, чтобы проверить статус
kubectl get svc -n kubesphere-system
Используйте IP: 30880 для доступа к пользовательскому интерфейсу KubeSphere, учетная запись администратора кластера по умолчанию — admin/P@88w0rd.
Поскольку это также обучение, я также делюсь средой, чтобы каждый мог испытать следующее ==>Адрес онлайн-опыта — номер учетной записи test/Test123.
Советы
Просмотрите узел узла, к которому принадлежит модуль в указанном пространстве имен.
kubectl get pods -n istio-system -o wide
# 查看dev下的pod
kubectl get pods -n dev
## 查看pod xxx的yaml文件
kubectl get pods -n dev xxx -o yaml
# 获取namespace 为dev 的pod详情
kubectl get pods -n dev -o wide
# 创建pod
kubectl apply -f xxx.yaml
# 显示node的labeal
kubectl get nodes --show-labels
# 查看 namespace为dev下的pod详情
kubectl describe pods -n dev [podName]
## 查看node节点详情
kubectl describe nodes [nodeName] -o wide
столкнуться со статусом какContainerCreating, вы можете выполнить его на узле, где находится соответствующий pod
journalctl -f
Просмотр состояния образа или контейнера в режиме реального времени
Ссылаться на
установка руля
Установите kubernetes v1.15.4 с помощью kubeadm
руководство по установке источника kubesphere