Хорошо помнить эти простые правила, и они применяются как к параметрам, так и к возвращаемым типам ...
Есть время и место для каждого, поэтому убедитесь, что вы узнаете их. Локальные переменные, как вы показали здесь, просто таковы, что они ограничены временем, когда они локально живы в области функций. В вашем примере с возвращаемым типом int*
и возвратом &i
было бы одинаково некорректно. Вам было бы лучше в этом случае сделать это ...
void func1(int& oValue)
{
oValue = 1;
}
Это приведет к прямому изменению значения вашего переданного параметра. В то время как этот код ...
void func1(int oValue)
{
oValue = 1;
}
не будет. Он просто изменит значение oValue
локально на вызов функции. Причина этого заключается в том, что вы фактически меняете только «локальную» копию oValue
, а не oValue
.
Вы не предоставили многим информацию о том, чего вы хотите достичь. Но, как уже упоминал Константин, эта ошибка видна только при попытке доступа к API как неавторизованному (анонимному) пользователю. Возможно, вы пытались curl
сервер API как анонимный пользователь.
Вы можете найти точные шаги по изучению сервера API в этой замечательной статье .
Для взаимодействия с API Kubernetes вам необходим ServiceAccount с правильными разрешениями, полученными через (кластерную) роль и RoleBinding. Авторизуйтесь, используя токен ServiceAccount. Поскольку все общение происходит по протоколу TLS, вам также необходим самоподписанный сертификат. В качестве альтернативы разрешите небезопасные соединения, но это не рекомендуется.
blockquote>Подробнее об API Kubernetes и способах доступа к нему здесь .