Установите Golang (последняя версия):
sudo wget https://golang.org/dl/go1.16.5.linux-amd64.tar.gz rm -rf /usr/local/go && tar -C /usr/local -xzf go1.16.5.linux-amd64.tar.gz
Настройка среды через Bash:
echo 'export PATH=${PATH}:/usr/local/go/bin' >> ~/.profile echo 'export GOPATH_K8S=${HOME}/go/src/k8s.io/kubernetes' >> ~/.profile echo 'export PATH=${GOPATH_K8S}/third_party/etcd:${PATH}' >> ~/.profile source ~/.bashrc
СДЕЛАТЬ Уверены, что вы установили путь для GO и ETCD в Secure_Path в файле/etc/etc/etcoers
Обязательно отредактируйте его как Visudo
клон кубернаны
mkdir -p {GOPATH_K8S} git clone https://github.com/kubernetes/kubernetes ${GOPATH_K8S} git remote rename origin upstream
Установите ETCD.
$ hack/install-etcd.sh
Начните Docker Daemon
systemctl enable docker systemctl start docker
Построить K8S.
This step takes 15 minitues cd ${GOPATH_K8S} git checkout v1.12.3 (checkout the stable release version) time make quick-release
Запустите локальный кластер K8S
$ {Gopath_k8s}/hack/local-up-cluster.sh
Убедитесь, что кластер работает в другом окне
export KUBERNETES_PROVIDER=local export KUBECONFIG=/var/run/kubernetes/admin.kubeconfig ${GOPATH_K8S}/cluster/kubectl.sh get nodes
Вилка k8s repo на github
navigate to click fork button
Настройка Jithub Имя пользователя
export GITHUB_USER=[Insert your github user name] echo 'export GITHUB_USER=${GITHUB_USER}' >> ~/.bash_profile
Изменить исходный код K8S
Перейдите к каталогу Ваш клон
cd ${GOPATH_K8S} git remote add origin https://github.com/${GITHUB_USER}/kubernetes git fetch origin
Эти инструкции делают следующие допущения:
-Your upstream remote going to http:// -Your origin remote http://
Вы можете дважды проверить, запустив
$ Git Remote -v
Создайте новую ветку, прежде чем сделать изменение
ветвь должна иметь некоторое значение означает то, что вы добавили в код
git checkout upstream/master git checkout -b my-brnach-of-k8s
Если вы хотите сделать изменения, мы рекомендуем найти какой-то непроверенный код и добавление нескольких модульных тестов. Если вы не знаете, как писать тесты подразделения в Go Прочтите это
Golang_testing
Пример новый тест
Файл: pkg/util/normalizer/normalizer_test.go
Запустите Кубернаны на месте
$ make test what-k8s.io/kubernetes/pkg/util/normalizer
Способствовать запросу
Совершить ваши изменения и подтолкнуть к своей вилке
gofmt -v [insert path to changed file] gofmt -v pkg/util/normalizer/normalier_test.go git add . git config --global user.name "" git config --global user.email "" git commit -m "commit msg" git push -u origin/my-branch-of-k8s
Создать запрос на тягу через Gihub Ui
Navigate to https://github.com/kubernetes/kubernetes page click on the new pull request click on compare across forks link select your fork and branch from the two dropdowns on the right click on create pull request Note that an existing maintainer must comment with the /ok-to-test comment the automated test for new contributer
Если у вас есть какие-либо сомнения, пожалуйста, спросите. Спасибо за чтение 🔥
Оригинал: «https://dev.to/rahulku48837211/how-to-build-and-run-k8s-locally-5e3m»